0
我在使用指令時遇到問題,而在父控制器中設置的某些範圍值在指令嘗試訪問時未設置。這是因爲在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從服務中獲取,所以它造成了許多的問題。
如果不等待會有什麼危害? – Rayon
我認爲你的指令鏈接函數中的數據在'scope.data''中不在'scope.personType'中。 –
當您在指令中執行'scope:{data:'='}'時,您正在設置雙向綁定,因此如第一條評論所述,如果不等待,綁定應在檢索數據時再次更新。您的console.log語句將只運行一次(即使您使用了正確的變量名稱,它也不會打印服務器響應)。您是否向我們展示了使用該指令的所有模板?如果還有更多,您可能會創建可能導致此類問題的子範圍。 –