の回答と同様に、サービスにデータを保存しようとしています:
app.factory('myService', function($http) {
var 約束;
var myService = {
非同期:関数(){
もし (!約束) {
// $http は promise を返す then 関数を持つ promise を返します。
promise = $http.get('test.json').then(関数 (応答) {
// then 関数は、応答を変更する機会です
console.log(応答);
// 戻り値はコントローラの then によって取得されます。
response.data を返します。
});
}
// プロミスをコントローラーに返す
約束を返す;
}
};
myService を返します。
});
app.controller('MainCtrl', function( myService,$scope) {
$scope.clearData = 関数() {
$scope.data = {};
};
$scope.getData = function() {
// 非同期メソッドを呼び出してから、独自の then 関数内で返されたものを処理します
myService.async().then(関数(d) {
$scope.data = d;
});
};
});
ただし、ログアウト後もサービスのデータが保持されていることに気付きました。したがって、まったく別のユーザーとしてログインして、表示されるべきではないデータを表示することができました。
ログアウト後にデータを消去するにはどうすればよいですか? もちろん、すべてのサービスのすべてを手動でクリアすることもできますが、「すべてのユーザー データをクリアする」などのより一般的なアプローチを探しています。ページを強制的に更新しようとしましたが、うまくいきましたが、生成されるフラッシュが気に入りません。
編集:例のコード