如何从一个单独的控制器获取事件到另一个页面控制器?

时间:2013-10-14 05:23:40

标签: javascript angularjs angularjs-scope

我们尝试使用此代码从页面控制器获取广播事件。

Controller1.js
    scope.createList = function() {
        scope.$broadcast("event: list updated", true);
    }

Controller2.js
   scope.$on("event: list updated", function(value) {
      console.log('event update");
   });

此方法在一个页面控制器中工作,但不在单独的js控制器中。如何通过controller1.js通知controller2.js?

1 个答案:

答案 0 :(得分:1)

$ broadcast 方法为所有子范围发出事件,因此侦听器控制器应该在其中。您可以在 $ rootScope 上进行广播,而不是在范围内进行广播,因此每个范围都可以捕获该事件。

.controller("Controller1", function ($scope, $rootScope) {
    $scope.createList = function() {
        $rootScope.$broadcast("event: list updated", true);
    }
})