有2个兄弟指令<hello>和<world>,hello指令操作后world指令的数据,使得world指令的数据发生变化,从而改变UI界面。现在world指令里有2个定时任务,hello指令要怎么停止world指令里的定时任务再重新打开或者重新设定定时任务?html:<hello></hello>
<world></world>
1 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
是这样的,在angular1
中,我们可以通过事件系统来搭建两个不同指令之间的“桥梁”
在你的case里,你就可以在hello
指令里,先注入$rootScope
,然后通过她向下广播一个事件,例如:
$rootScope.$broadcast('stop-interval');
然后在world
指令中,拿到link
函数的第一个参数scope
,然后通过她注册一个stop-interval
的事件监听,例如:
app.directive('world', function(){ return { restrict: 'e', scope: {}, link: function(scope, element, attrs){ scope.$on('stop-interval', function(){ //在这里,放心大胆的取消你之前已经开启的interval吧 }); } }; });
添加回答
举报
0/150
提交
取消