angularjs - localstorage未正确加载

时间:2016-04-02 06:55:04

标签: angularjs rootscope angular-local-storage

我正在为一个学校项目开发一个小型网络应用程序,我将用户数据存储在localstorage上,如下所示:

UserService.login($scope.user).then(function (response){
    if(response.data.Error){
        $scope.credentialsError = true;
    }else{
        $rootScope.cliente = response.data.result;
        localStorageService.set('cliente', $rootScope.cliente);
        $location.path('/dashboard');
    }
});

只要我留在页面中,一切正常,用户仍然在$ rootScope中做这件事。当我重新加载时问题出现了。 在启动时我运行:

angular.module('app-gp').run([
  "$rootScope",  "localStorageService", "$state", function($state,localStorageService, $rootScope) {
      $rootScope.cliente = localStorageService.get('cliente');
}]);

这似乎可以从本地存储中正确获取用户数据。但是,当我从控制器或模板请求$ rootScope.cliente时,我得到了未定义。

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

请确保localStorageService正常运行。我不确定localStorageService的实现,但请注意localStorage只支持字符串值,您必须将response.data.result转换为string。在chrome中,您可以使用开发人员工具 - >资源选项卡,然后查看"本地存储"并查看存储是否实际发生。

理想情况下,我会将此作为评论发布,但在此网站上没有足够的声誉来做到这一点..

答案 1 :(得分:0)

您的代码看起来很好但是本地存储服务的实现可能会有问题。 您应该使用众所周知的ngStorage服务来完成这项工作。 https://github.com/gsklee/ngStorage

答案 2 :(得分:0)

过了一会儿,我设法解决了这个问题。 似乎从来没有关于localStorageservice,我所做的是重新排列这个:

angular.module('app-gp').run(["$rootScope", "localStorageService", "$state", function($rootScope, localStorageService, $state) {

它有效......