2016-06-12 19 views
0

許可されていないユーザーが制限付き状態にアクセスしようとすると、制限状態は$ state.go(fromState.name)によって返される前に読み込まれます。それはevent.preventDefault()のように思えます。発砲しない?助けてください< 3ありがとう!

答えて

0

あなたは非同期コールバックからevent.preventDefault()を呼び出しています。したがって、呼び出された時点で、イベントリスナー関数は既に返されており、イベントが防止されていないため、ルータは次の状態にナビゲートしています。

あなたは

$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) { 
    if ((toState.name == 'app.admin' || toState.name == 'app.bonus') 
     && !AuthService.isAuthenticated()) { 
     event.preventDefault(); 
    } 
} 

をしました。しかし、もちろん、それはあなたのサービスではなく約束よりも、同期ブール値を返す必要がある意味場合、それは動作します。

関連する問題