angularjs - $ rootScope.$ on多次调用

use*_*928 7 angularjs

在一个控制器中我做:

$rootScope.$emit("newAction", {});
Run Code Online (Sandbox Code Playgroud)

在另一个控制器我做:

$rootScope.$on('newAction', function() {
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
          vm.newAction (...);
      });
Run Code Online (Sandbox Code Playgroud)

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

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

Ved*_*Ved 16

$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();
  });
Run Code Online (Sandbox Code Playgroud)

请参阅此链接
使用$ scope.$ emit和$ scope.$ on