在我的Angular 1.4.7应用程序的一个控制器中,我发起了这样的事件:
$rootScope.$broadcast('event:auth:login-finished');
然后在另一个控制器中,我尝试用
来听这个事件$scope.$on('event:auth:login-finished', function () {
console.debug('ROOT AUTH HANDLER CALLED');
});
出于某种原因,永远不会调用处理程序,即使事件肯定被触发,我做错了吗?
我也尝试过听根范围
$rootScope.$on('event:auth:login-finished', function () {
console.debug('ROOT AUTH HANDLER CALLED');
});
但这不会被称为
答案 0 :(得分:0)
使用$rootScope.$on
来抓住它。
关键是获得" root"。
答案 1 :(得分:0)
这取决于控制器之间的关系。调用$ broadcast会将事件触发到所有子范围。因此,如果$ on不在子控制器中,那么它就不会被激活。
将$ on放在rootScope上应该有效。
$rootScope.$on('event:auth:login-finished', function () {
console.debug('ROOT AUTH HANDLER CALLED');
});