2017-02-27 20 views
1

あなたの提案が必要です。シングルページアプリ:ログイン後に戻る

私は、ルーティングのためにui.routerを使用するangularjsアプリを持っています。

ユーザーには最初にログイン画面が表示され、ログインするとグリッドが表示されます。 グリッドにページが設定されています。

ユーザーがブラウザの戻るボタンをクリックすると、ユーザーはログイン画面に移動します。
1.この動作は正しいですか?それ以外の場合はお勧めしますか。
2.また、ページを使用して3ページに移動したユーザーが戻るボタンをクリックすると、前のページに移動する必要があります。事前に

おかげ

+0

これは、あなたが望む動作かどうかを決定するのはあなた次第です。 –

+0

フィードバックまたは提案Anony? – lin

答えて

1

1)あなたは$stateChangeStartを使用してログインするために戻って、クライアントを防ぐことができます。

.state('app.list', { 
    url: '/list/:pageId', 
    templateUrl: 'views/list.html' 
}) 

変更URL:このような例:ユーザーがブラウザの履歴を使用してバック/前進することができますので、

/** 
* Before state change/page switch 
*/ 
$rootScope.$on("$stateChangeStart", function (event, next, current, fromState, fromParams, options) { 

    //verify login state 
    if ($cookies.get('loggedIn') !== undefined) { 
     if (next.templateUrl !== "views/login.html") { 
      $timeout (function() { 
       event.preventDefault(); 
       $state.go('app.overview'); 
      }, 50); 
     } 
    } 
}); 

2)あなたの改ページ内のすべてのページのURLを作成します。ページ上でリロードなしでクリックしてください。notify: false

$state.go('app.list', {pageId: yourNextdPageId}, {notify: false}) 
関連する問題