angularjs - $ rootScope。$ on多次调用

时间:2016-06-20 10:31:10

标签: angularjs

在一个控制器中我做:

$rootScope.$emit("newAction", {});

在我做的另一个控制器中:

$rootScope.$on('newAction', function() {
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
      });

我的问题是多次调用$ rootScope。$ on。我不知道为什么。

如果有人提示...... 感谢

1 个答案:

答案 0 :(得分:15)

$rootScope侦听器不会自动销毁。您需要使用$destroy销毁它。

var customeEventListener = $rootScope.$on('newAction', function() {
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
      });

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

参考此链接
Working with $scope.$emit and $scope.$on