我正在尝试将数据存储在我的服务中,类似于以下答案:
app.factory('myService', function($http) {
变种承诺;
变量我的服务 = {
异步:函数(){
如果(!承诺){
// $http 返回一个promise,它有一个then函数,它也返回一个promise
promise = $http.get('test.json').then(function (response) {
// 这里的then函数是修改响应的机会
控制台日志(响应);
// 返回值由控制器中的 then 获取。
返回响应。数据;
});
}
// 将承诺返回给控制器
回报承诺;
}
};
返回我的服务;
});
app.controller('MainCtrl', function(myService,$scope) {
$scope.clearData = 函数() {
$scope.data = {};
};
$scope.getData = 函数() {
// 调用异步方法,然后处理我们自己的 then 函数中返回的内容
myService.async().then(function(d) {
$scope.data = d;
});
};
});
但是,我注意到我的服务中的数据即使在注销后仍然存在。因此,我可以以完全不同的用户身份登录并查看我不应该看到的数据。
注销后如何清除数据?当然,我可以手动清除所有服务中的所有内容,但我正在寻找更通用的方法,例如“清除所有用户数据”。我试图强制刷新页面,它可以工作,但我不喜欢它产生的闪存。
编辑:示例代码