AngularJS-Direktiven weisen den Zugriff von der Steuerung aus zu

Ich versuche, auf die Attribute einer Direktive in der Controller-Funktion zuzugreifen. Bis ich darauf zugreife, ist es jedoch undefiniert. Mir ist aufgefallen, dass ein einfacher Timer funktioniert. Gibt es eine Möglichkeit, Code erst auszuführen, nachdem die Direktive und ihre Gültigkeitsbereiche bereit und für die Verwendung eingestellt sind?

Ich habe damit herumgespielt. Stellen Sie sicher, dass Ihre Konsole geöffnet ist.http://jsfiddle.net/paulocoelho/uKA2L/1/

Hier ist der Code, den ich in der Geige verwende:

<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);
        }
    };
});

Antworten auf die Frage(6)

Ihre Antwort auf die Frage