2016-10-04 15 views
0

私のアプリケーションにログインしていないユーザーをログインページにリダイレクトしようとしています。私のコードは現在、1つを除くすべてのページで作業しています。

app.run(['$rootScope', '$location'], function($rootScope, $location){ 
    if(!loggedIn){ 
     var returnTo = $location.path(); 
     $location.search("ReturnTo", returnTo); 
     $location.path("account/login").replace(); 
    } 
} 

は、これまでのところ私は、$ location.pathの値が更新されている問題のページに知っているが、それは私のブラウザの検索バーに反映されていないとは対照的に、私は、元のページビューを見ていますログインページビュー

私は$ rootScope.apply()の使用について多くの提案を見てきましたが、私はそれらのいずれかを動作させることはできませんでした。

答えて

1

just do $location.url("account/login");

+0

これは私にとっては役に立ちません。唯一の利点は、パスとクエリ文字列を別々に設定する必要がなくなったことです。以前のように、単純なconsole.log()ステートメントは、$ locationオブジェクトが更新されていることを示していますが、ログインフォームに表示されるのではなく、元のページビューが表示されています。 – dmoschak

+0

ログインページのルートを確認できますか?ルートが違うかもしれない。私はそれが$ location.url( "/ login")であるはずだと仮定します。 –

+0

'$ routeProvider.when( '/ account/login'、{ templateUrl: 'account/account-login.tpl.html'、 コントローラ: 'app.controller.account.login' })' – dmoschak

関連する問題