2017-03-18 8 views
0

こんにちは、平均スタックの開発の初心者です。私はlogout.Iを試した後にページを更新しようとしましたlocation.reload();それはあなたがページを更新する場合は$windowサービスから$window.location.reload()を使用する必要がありますログアウト後の角度jsのリロードページ

$rootScope.$on('$routeChangeStart', function (event) { 
    var storage = userService.isLoggedIn(); 
    console.log(storage); 

    if (!storage) { 
     console.log('DENY'); 
     $rootScope.adminlogin = "adminlogin"; 
     console.log($rootScope.adminlogin); 

     $location.path('/login'); 
     $route.reload();  
     // $state.go('/login', null, {reload: true}); 
    } 
    else { 
     console.log('ALLOW'); 
     $rootScope.admindashboard = "admindashboard"; 
     var path = $location.path(); 
      console.log(path); 
      console.log(storage); 
     if(path == '/login'){ 
      $location.path('/'); 
     } 


    } 
}); 
+0

'$ state.go( '/ login'、null、{reload:true})'行は機能しません??? –

+1

私は$ stateを使用しませんでした。私はリダイレクト用の経路を使用しました –

+0

'$ window.location.reload()' [reload page](http://stackoverflow.com/questions/16703215/how-to-reload-or-ページ全体を再描画します) –

答えて

0

あなたがする必要があるのはVanilia JSのこの小さなラインです: document.location.href=document.location.href

EDIT:なぜこれがdownvotedなっていますか?

4

このシナリオでは、私のページのリロードのための可能なコードを教えてくれ動作しません。これは、ブラウザのリロードボタンと同じことを行います。

あなたの代わりに直接AngularJS documentationごとにネイティブwindowオブジェクトにアクセスするの$windowサービスを使うべき理由:

ウィンドウはJavaScriptでグローバルに使用されますが、それはグローバルなので、それは、 テスタビリティの問題を引き起こします変数。 AngularJSでは、 は常に$ windowサービスを参照しているため、テストのためには、 が上書き、削除、または偽装されている可能性があります。サイドノートでは

あなたはただ、あなたのアプリケーション全体あなたのコントローラをリロードしないであろう$route.reload()を呼び出し、$routeサービスを使用していると述べました。

+0

どこに置くことができるのか教えてください。ログインページを再度呼び出すときにコントローラに配置しました。 –

+0

'$ window'サービスが利用可能になっている限り、どこにでも置くことができます。申し訳ありませんが、私はページをリフレッシュするためにあなたに言いましたが、ページをリフレッシュしたいときはあなたが知っている限りです。コードを配置したい場合は、それを知っておく必要があります:) – cnorthfield

0

ルートを使用している場合は、[ログアウト]をクリックしてログインページにルーティングするだけです。

スナップデモから撮影:

$routeProvider 
     .when('/login', { 
      controller: 'LoginController', 
      templateUrl: 'modules/authentication/views/login.html', 
      hideMenus: true 
     }) 

     .when('/', { 
      controller: 'HomeController', 
      templateUrl: 'modules/home/views/home.html' 
     }) 

     .otherwise({ redirectTo: '/login' }); 

と私は私のページに 'ログアウト' をクリックしたときに、それは同じようsomehtingを行う必要があります:

<p><a href="#/login">Logout</a></a></p> 

それ

これらは私のルートですルートごとにログインページにリダイレクトする必要があります。