我们尝试使用此代码从页面控制器获取广播事件。
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?
答案 0 :(得分:1)
$ broadcast 方法为所有子范围发出事件,因此侦听器控制器应该在其中。您可以在 $ rootScope 上进行广播,而不是在范围内进行广播,因此每个范围都可以捕获该事件。
.controller("Controller1", function ($scope, $rootScope) {
$scope.createList = function() {
$rootScope.$broadcast("event: list updated", true);
}
})