如何反复阻止$ rootScope上的绑定事件?

时间:2015-05-06 04:34:58

标签: angularjs

我在controllerOne上的$ rootScope上有一个事件:

$rootScope.$on('eventName', function(event, args) {
    invoke function A;    
});

和controllerTwo,我发出事件:

$scope.$emit('eventName', args);

如果我第一次进入controllerOne,当我发出事件时,函数A只运行一次;当我第二次进入controllerOne时,我发出事件然后函数A运行多次,可能是两次或三次

如何重复阻止$ rootScope上的绑定事件

1 个答案:

答案 0 :(得分:4)

使用$destroy事件正确取消订阅处理程序:https://stackoverflow.com/a/18856665/4573999

适应您的情况:

var cleanUp = $rootScope.$on('eventName', function handler(event, args) {
    invoke function A;    
});

$scope.$on('$destroy', function () { 
    cleanUp();
});