我有一个angularJs应用程序(使用ui-router),它需要阻止用户访问某些状态,除非他们已登录。在应用程序.run块我正在检查他们是否已登录。为了帮助管理这个我想要将事件广播到同一应用程序的另一个控制器。
这是我的(缩短的)运行块..
app.run(function($rootScope) {
$rootScope.$broadcast('sessionExpired');
})
and the listener in my controller...
$scope.$on("sessionExpired", function() {
console.log('goto login');
})
这在加载应用程序后更改状态时效果很好。但是如果我刷新页面,则执行.run块,但控制器中的侦听器永远不会收到广播事件。
刷新页面时未收到事件的任何想法?