【发布时间】:2013-12-23 14:50:06
【问题描述】:
什么是实现指令的最佳“Angular 方式”,该指令将为所有 it 实例提供一个共享计时器?
例如,我有一个指令“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
}
}
};
});
【问题讨论】:
标签: javascript angularjs