3

私は ui-router を使用しており、ログイン ページのリダイレクト用に 2 つの $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 が true であることがわかります。func1 のデフォルトを防止しても func2 の実行が停止しない理由がわかりません。この動作は設計によるものですか? もしそうなら、「デフォルト」とはどういう意味ですか?

プランクは次のとおりです: http://plnkr.co/edit/o81NVo?p=previewコンソールをクリアして再実行すると、ログが表示されます。

4

1 に答える 1