Directivas AngularJS atribuyen acceso desde el controlador.

Estoy intentando acceder a los atributos de una directiva en la función de controlador. Sin embargo, en el momento en que accedo a ella, no está definido. Noté que si hago un simple temporizador funciona. ¿Hay una manera de ejecutar código solo después de que la directiva y sus ámbitos estén listos y configurados para ser utilizados?

Hice un violín con él. Asegúrate de que tu consola esté abierta.http://jsfiddle.net/paulocoelho/uKA2L/1/

Aquí está el código que estoy usando en el violín:

<div ng-app="testApp" >
    <testcomponent text="hello!"></testcomponent>
</div>
var module = angular.module('testApp', [])
    .directive('testcomponent', function () {
    return {
        restrict: 'E',
        template: '<div><p>{{text}} This will run fine! </p></div>',
        scope: {
            text: '@text'
        },
        controller: function ($scope, $element) {
            console.log($scope.text); // this will return undefined
            setTimeout(function () {
                console.log($scope.text);    // this will return the actual value...
            }, 1000);
        },
        link: function ($scope, $element, $attrs) {
            console.log($scope.text);
            setTimeout(function () {
                console.log($scope.text);
            }, 1000);
        }
    };
});

Respuestas a la pregunta(6)

Su respuesta a la pregunta