Javascript 角度事件$stateChangeStart未触发
我正在尝试为用户实施基于路由的安全性,但是Javascript 角度事件$stateChangeStart未触发,javascript,angularjs,Javascript,Angularjs,我正在尝试为用户实施基于路由的安全性,但是stateChangeStart不会启动,这是我的代码: app.run(['$rootScope', '$location', function($rootScope, $location) { $rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){ console.log('$stateChangeS
stateChangeStart
不会启动,这是我的代码:
app.run(['$rootScope', '$location', function($rootScope, $location) {
$rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){
console.log('$stateChangeStart to '+toState.to+'- fired when the transition begins. toState,toParams : \n',toState, toParams);
});
}]);
因此,每当我更改路由,并从一个链接/控制器跳到另一个链接/控制器时,都不会发生任何事情,但是当我在各个控制器中添加控制台日志时,我确实会看到控制台日志语句
我做错了什么?我如何调试这个,我不是一个有经验的人
更新
我想我使用的是ngRoute
而不是ui路由器
对于
ngRoute
,是否存在与我在根作用域上获得状态更改等效的内容。迁移到ui router在这一点上似乎是一个很大的改变,为此目的是的,您有不同于$route provider的事件:$routeChangeStart、$routeChangeSuccess、$routeChangeError
$rootScope.$on('$routeChangeStart', function(event, next, current) {
// TODO
});
doc:$route是您有不同于$route提供程序的事件:$routeChangeStart、$routeChangeSuccess、$routeChangeError
$rootScope.$on('$routeChangeStart', function(event, next, current) {
// TODO
});
文件:$route只是想澄清一下,你使用的是ui路由器还是ngRoute?@charlietfl是的,我使用的是
ngRoute
d'oh,对于ngRoute
是的,$routeChange…
。。。但这很容易在文档中查找also@charlietfl是的,可以,但如果你访问滚动内容的右侧,我就无法导航到该信息。但是“轻松”是一个前瞻性的问题,你显然知道你的方法,我最近刚开始学习angular,希望有一天我能达到你的水平。只是想弄清楚,你是在使用ui路由器还是ngRoute?@charlietfl是的,我用的是ngRoute
d'哦,对于ngRoute
是的,$routeChange…
。。。但这很容易在文档中查找also@charlietfl是的,可以,但如果你访问滚动内容的右侧,我就无法导航到该信息。但是“轻松”是一个前瞻性的问题,你显然知道你的方法,我最近刚开始学习angular,希望有一天我能达到你的水平。引入很简单,这可以从评论中转化为答案。。。至少要用恰当的句子给出一个完整的答案。导入很简单,可以将此转化为评论中的答案。。。至少要用恰当的句子给出完整的答案