2016-07-13 7 views
1

AngularJSのサービスデータを消去する際のベストプラクティスは何ですか?たとえば、user1がログアウトしてuser2が同じブラウザで再びログインする場合、サービスデータを消去しない場合、user2はuser1と同じサービスデータを使用します。AngularJSのサービスデータのリセット/クリア

たとえば、user1がサービスにユーザーを追加してログアウトし、同じブラウザでuser2が再度ログインした場合、user1が追加されたすべてのユーザーを表示できます。

var module = angular.module('myapp', []); 

module.service('userService', function(){ 
    var users = ['John', 'James', 'Jake']; 
}); 

私はこの問題に取り組むための2つのソリューションを持っているが、どれも理想的ではありません。

  1. サービス内のすべてのプロパティを手動でリセットします。誰かがいつかそれをするのを忘れるかもしれないので、これは理想的な解決策ではないようです。
  2. ログアウト時にリロードウィンドウ。サービスをリセットするようですが、ユーザーエクスペリエンスはやや劣ります。

もっと良い選択肢はありますか?ログアウト時に

+0

これは多くのパラメータに依存しており、現在の質問は広すぎて答えられません。あなたはhttps://github.com/witoldsz/angular-http-authを試すことができます - イベントを使ってログアウト/許可されていないリクエストを処理できるようにします –

+0

私はすでにインターセプタを使用しています。私が知りたいと思うのは、ログアウトイベント中です。サービス状態を効率的にクリアするにはどうしたらいいですか? – m0g

+0

また、あなたのコードにも依存します - データをlocalStorage、variablesに保存しますか?あなたが 'ui-route'モジュールを使っているのか、単に' ngRoute'を使っているのか、質問にいくつかのコードを含めることができれば最高です。あまりにも多くの未知の要因 –

答えて

1

window.location.href = "yourloginurl"

ログアウトがあなたのSPAの残りの部分と同じくらいうまくいかないかどうかは関係ありません。

+0

私はこれに同意します。多くの時間を節約する –

関連する問題