我使用ui-router并为登录页面重定向注册了两个$ stateChangeStart处理程序。
function func1(e,to,toParams, from, fromParams){
....
if (notAuthenticated) {
e.preventDefault();
$state.go('login');
}
}
function func2(e,to,toParams, from, fromParams){
...
console.log('func2', from, to, e.defaultPrevented);
}
$rootScope.on('$stateChangeStart', func1);
$rootScope.on('$stateChangeStart', func2);
作为func1 preventDefault(),我可以看到,在func2 e.defaultPrevented是真的。我只是不明白为什么在func1中防止默认不会阻止func2执行。这是行为设计吗?如果是,“默认”是什么意思?
以下是plunk:http://plnkr.co/edit/o81NVo?p=preview您可以清除控制台并重新运行它以查看日志。