[英]angular directive executing before data fetch
我現在有一個指令有問題,而當指令嘗試訪問它們時,未設置在父控制器中設置的某些范圍值。 這是因為在AJAX調用返回任何數據之前調用了該指令。 是否可以讓我的指令在繼續設置之前等待該數據被設置?
angular.module('vt.directives', [])
.directive('personType', [function () {
return {
restrict: 'A',
replace: true,
scope: {
data: '='
},
template: '<div class="{{data.property}}"</div>',
link: function (scope, elm, attrs) {
console.log(scope.personType);
}
};
}]);
<div ng-controller="parentcontroller">
<div personType data="jsonobject"></div>
</div>
在這里,我的parentcontroller正在從服務中獲取數據並傳遞給persontype指令,但是persontype指令沒有等到jsonobject從服務中獲取后才引起很多問題。
如果要將數據放在scope,personType上,則必須將數據分配給personType指令本身
<div personType="jsonobject"></div>
並通過訪問
console.log( $parse(attrs.personType)(scope));
而且,如果要在AJAX調用后加載此數據,則可以從服務中$ emit出數據,並通過$ on方法在指令中訪問它們。
可能對您有幫助:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.