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