の回答と同様に、サービスにデータを保存しようとしています:
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; }); }; });
ただし、ログアウト後もサービスのデータが保持されていることに気付きました。したがって、まったく別のユーザーとしてログインして、表示されるべきではないデータを表示することができました。
ログアウト後にデータを消去するにはどうすればよいですか? もちろん、すべてのサービスのすべてを手動でクリアすることもできますが、「すべてのユーザー データをクリアする」などのより一般的なアプローチを探しています。ページを強制的に更新しようとしましたが、うまくいきましたが、生成されるフラッシュが気に入りません。
編集:例のコード