Tôi đang cố truy cập các thuộc tính của một chỉ thị trong hàm điều khiển. Tuy nhiên, vào thời điểm tôi truy cập nó, nó là không xác định. Tôi nhận thấy rằng nếu tôi làm một bộ đếm thời gian đơn giản nó hoạt động. Có cách nào để thực thi mã chỉ sau khi chỉ thị và phạm vi của nó đã sẵn sàng và được thiết lập để sử dụng không?AngularJS chỉ thị các thuộc tính truy cập từ bộ điều khiển
Tôi đã thực hiện điều đó. Đảm bảo bảng điều khiển của bạn đang mở. http://jsfiddle.net/paulocoelho/uKA2L/1/
Đây là mã tôi đang sử dụng trong fiddle:
<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);
}
};
});
yup, làm việc cho tôi :) nhờ người đàn ông – PCoelho
này sẽ thất bại Linting. như 'attrs.text' không xác định. –
@DougChamberlain Bạn có thể sử dụng JSDoc để đi xung quanh đó. Một cái gì đó như '' @param {string} attrs.text'' sẽ giải quyết vấn đề của bạn. –