为了账号安全,请及时绑定邮箱和手机立即绑定

angular一代,不同directives之间怎么操作$interval?

angular一代,不同directives之间怎么操作$interval?

MYYA 2018-09-11 09:09:45
有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吧
            });
        }
    };
});


查看完整回答
反对 回复 2018-10-09
  • 1 回答
  • 0 关注
  • 436 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信