2
什麼是實現該指令的最佳「角度方法」,該指令將爲其所有實例共享一個定時器?AngularJS - 針對所有指令實例的相同定時器
例如我有一個指令「myComponent」,並且在頁面上出現很多次。 組件內部存在一些閃爍一段時間的文本。
由於業務需求和性能方面的考慮,我希望會有單一的「超時」,一次切換所有實例的閃爍(文檔準備就緒後)。
我想到了寫指令的定義中的一些代碼:
//Pseudo code
angular.module("app",[]).directive("myComponent", function($timeout){
$(function() { $timeout(function(){ $(".blink").toggle(); }, 3000); });
return {
//Directive definition
};
});
或使用某種服務,將接收$element
和添加刪除類到它:
//Pseudo code
angular.module("app",[])
.service("myService", function($timeout){
var elements = [];
this.addForBlink = function(element) { elements.push(element) };
$(function() { $timeout(function(){ $(elements).toggle(); }, 3000); });
})
.directive("myComponent", function(myService){
return {
compile:function($element){
myService.addForBlink($element);
return function() {
//link function
}
}
};
});