我使用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您可以清除控制檯並重新運行它以查看日誌。