夥計們,我有以下指令:呼叫功能被加載AngularJS
angular.module('blah').directive('someDirective', function() {
return {
scope: {
arrayParam1: '=arrayParam1',
arrayParam2: '=arrayParam2'
},
restrict: 'E',
templateUrl: '/my/path/to/someDirective.tpl.html',
link: function (scope, elem, attrs) {
//Some logic
scope.someEvent = function(){
//some logic
}
scope.$on('$viewContentLoaded', function() {
debugger;
scope.someEvent();
});
}
};
});
現在,在HTML我有一個NG重複在陣列中的一個(arrayParam1爲例),我顯示一些東西。現在我的目標就是在HTML完全加載後(通過ng-repeat的迭代完成)觸發scope.someEvent。
那麼當我使用$在它甚至不停止在調試器上。如果我將它更改爲$ watch它在JS完成所有代碼後停止,但HTML仍未呈現,並且在視圖完成之前觸發了我想要的內容。
在此先感謝。
可以使用超時,而不是viewContentLoaded的 –
這聽起來像一個XY問題。你想達到什麼目的? – Iso
@TheMechanic嗯,我知道超時,但我希望它儘可能清楚地做到這一點。 @ Iso這個目標比我寫的例子要複雜得多。我正在用ng-repeat創建手風琴,並且在HTML中完成之後,我想dynamiclly將元素添加到每個窗格(來自js)。 –