我试图将数据存储在我的服务中,类似于以下答案:
Processing $http response in service
app.factory('myService', function($http) { var promise; var myService = { async: function() { if ( !promise ) { // $http returns a promise, which has a then function, which also returns a promise promise = $http.get('test.json').then(function (response) { // The then function here is an opportunity to modify the response console.log(response); // The return value gets picked up by the then in the controller. return response.data; }); } // Return the promise to the controller return promise; } }; return myService; }); app.controller('MainCtrl', function( myService,$scope) { $scope.clearData = function() { $scope.data = {}; }; $scope.getData = function() { // Call the async method and then do stuff with what is returned inside our own then function myService.async().then(function(d) { $scope.data = d; }); }; });
但是,我注意到即使在注销后我的服务中的数据仍然存在。因此,我可以以完全不同的用户身份登录,并查看我不应该看到的数据。
退出后如何清除数据?当然,我可以手动清除所有服务中的所有内容,但我正在寻找更通用的方法,例如"清除所有用户数据"。我试图强制页面刷新,但它有效,但我不喜欢它产生的闪光灯。
编辑:示例中的代码
答案 0 :(得分:0)
要清除myService中的数据,您可能有一个在$ scope.clearData上调用的destroy()函数。 例如:
app.factory('myService',function('$http'){
/// do you stuff
return{
myServices : //...,
destroy : function(){
promise = null;//destroy promise
}
}
});
另外,您可能不希望在$ scope中存储数据。您可能想要分离控制和数据。