Denetleyici işlevinde bir yönerge özniteliklerine erişmeye çalışıyorum. Ancak, eriştiğim zaman, tanımsızdır. Basit bir zamanlayıcı yaparsam işe yaradığını fark ettim. Sadece direktifin ardından kodun yürütülmesi için bir yol var mı ve kapsamları hazır ve kullanılmaya hazır mı?AngularJS yönergeleri, denetleyiciden erişimi denetler
Onunla bir keman yaptım. Konsolunuzun açık olduğundan emin olun. İşte
http://jsfiddle.net/paulocoelho/uKA2L/1/ ben keman içinde kullanıyorum kodu:
<div ng-app="testApp" >
<testcomponent text="hello!"></testcomponent>
</div>
Eğer bağlama ve denetleyici işlevleri içinde
scope.text = $attrs.text;
ayarlarsanız, işleri ne
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);
}
};
});
yup, benim için çalışıyor :) teşekkürler adam – PCoelho
Bu tiftiklenmesinin başarısız olur. 'attrs.text' olarak bilinmemektedir. –
@DougChamberlain Bunu yapmak için JSDoc'u kullanabilirsiniz. @param {string} attrs.text' gibi bir şey sorununuzu çözmelidir. –