任何人都可以让我知道如何将登录的用户数据存储到AngularJS的全球范围内,
我的登录服务看起来像这样
App.service('Auth', function($http){
return {
isLogin:function(callback){
$http.get('api/auth/checkLogin').success(function(res){
callback(res);
});
},
login:function(user, callback){
$http.post('api/auth/login', user).success(function(res){
callback(res);
});
},
logout:function(callback){
$http.get('api/auth/logout').success(function(res){
callback(res);
});
}
};
});
我在我的控制器中使用相同的
$scope.isLogin = false;
$scope.UserData = {};
$scope.login = function(user){
Auth.login(user, function(res){
if(res.status){
$scope.isLogin = true;
$scope.loginBoxShown = false;
$scope.UserData = res.data;
$location.path('/Dashboard');
}
});
};
首次运行时工作正常但是一旦我重新加载页面,变量$scope.isLogin
和$scope.UserData
就会重置为默认值。
在$scope.logout();
函数删除它们之前,有没有办法永久地将它们存储在全局范围内。
答案 0 :(得分:3)
我通常使用ngStorage来实现用户数据持久性。找到https://github.com/gsklee/ngStorage
AngularJS模块,使Web存储以Angular方式工作。包含两个服务:$ localStorage和$ sessionStorage。
希望它有所帮助。
答案 1 :(得分:-2)
问题不是特定的角度问题。要在页面重新加载时保留数据,您基本上有两个选项localStorage
(它是小妹妹sessionStorage
)或cookies
。
这两种技术都已covered in other SO answers。