2016-07-26 21 views
1

私のアプリケーションでは、$ routeProvide.otherwise関数を使用してユーザーを '/ home'ルートにリダイレクトしました。ユーザーがログインしていない場合でも、私は$ routeChangeStartを使用してログインページにリダイレクトしています - 私は$ routeChangeStartは二回呼び出されているコンソールに気づいた

$rootScope.$on('$routeChangeStart', function(event, next, current) { 
    console.log('$routeChangeStart'); 
    $rootScope.layout.loading = true; 

    if ($rootScope.loggedIn === false) { 

    if (next.templateUrl === "login/login.html") { 
     // in order to skip this behavior when already navigating to the login page, 
     // we have to explicitly check the next templateUrl 
    } else { 
     console.log('DENY: redirecting to login'); 
     //event.preventDefault(); 
     $location.path('/login'); 
    } 
    } else { 
    console.log('ALLOW'); 
    } 

}); 

。理由を理解できません!

Here is the working Plunker

+0

を試してみてください2回目はログインページにリダイレクトするときです。 – DevTrong

+0

ダブルコールを防止するソリューションはありますか?私の実際のアプリでは、ログインページへのリダイレクトは実際には2回起こっています。 – Rishabh

+0

ホームコントローラの$ rootScope。$ onイベントを(.run()の代わりに)追加し、ログインページにリダイレクトするときにイベントの登録を解除します。 – DevTrong

答えて

-1

最初の時間はあなたがページ開いているときに呼び出されると、「家」に行くことにしようとしている。

$scope.$on('$locationChangeStart', function(event, next, current) 
{ 

} 
関連する問題