0

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

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?

4

1 回答 1

1

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

.controller("Controller1", function ($scope, $rootScope) {
    $scope.createList = function() {
        $rootScope.$broadcast("event: list updated", true);
    }
})
于 2013-10-14T05:58:13.357 回答