angularjs - 本地存储未正确加载

angularjs - localstorage not loading properly

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

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 时,我得到了 undefined.

感谢您的帮助。

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

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

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

过了一段时间我设法解决了这个问题。 似乎这与 localStorageservice 无关,我所做的是重新排列:

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

它奏效了...