如何在AngularJs中存储用户数据

时间:2014-04-21 15:28:43

标签: javascript angularjs

任何人都可以让我知道如何将登录的用户数据存储到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();函数删除它们之前,有没有办法永久地将它们存储在全局范围内。

2 个答案:

答案 0 :(得分:3)

我通常使用ngStorage来实现用户数据持久性。找到https://github.com/gsklee/ngStorage

  

AngularJS模块,使Web存储以Angular方式工作。包含两个服务:$ localStorage和$ sessionStorage。

希望它有所帮助。

答案 1 :(得分:-2)

问题不是特定的角度问题。要在页面重新加载时保留数据,您基本上有两个选项localStorage(它是小妹妹sessionStorage)或cookies

这两种技术都已covered in other SO answers