【问题标题】:AngularJS storing array of objects in a cookieAngularJS 在 cookie 中存储对象数组
【发布时间】:2018-03-30 02:55:20
【问题描述】:

我有一个对象数组存储在范围变量中。问题是当用户刷新页面时,它不会保留该数据,所以我正在考虑使用 cookie。

变量 $scope.Users 存储了一个用户对象数组,我使用以下代码将该数据放入 cookie:

 if ($cookies.getObject('user_data') === '' || $cookies.getObject('user_data') === undefined)                            
      $cookies.putObject('user_data',$scope.Users);

我使用的是不显示任何数据

console.log($cookies.getObject('user_data'))

我没有得到任何回报,所以 putObject 似乎没有保存数据。这里有什么问题? cookie 的大小会超出限制吗?

之前我使用以下方法从我的 html 页面中检索该数据:

 <tr ng-repeat="User in Users">
    <td>{{User.Name}}</td>
    <td>{{User.ID}}</td>
    <td>{{User.DOB}}</td>
    <td>{{User.Status}}</td>
  </tr>

我的问题是如何从 cookie 中检索数组并显示其内容?还有一种更好的方法可以通过刷新来持久化对象数组吗?服务会更好吗?

【问题讨论】:

    标签: angularjs cookies


    【解决方案1】:

    你可以试试这个代码。

    var obj = {"Name": name,  "ID": id,  "DOB": dob,  "Status": status};
    $scope.Users.push(obj);
    $cookies.put('user_data', JSON.stringify($scope.Users));
    var s = $cookies.get('user_data');
    $scope.Users= JSON.parse(s);
    

    【讨论】:

      【解决方案2】:

      确保将 ngCookies 作为模块的依赖注入,

      angular.module('cookiesExample', ['ngCookies'])
      

      您可以在控制器中执行此操作,

      设置数据

      $cookies.user_data =  $scope.users;    
      

      检索数据

       $scope.Users= $cookies.user_data;
      

      HTML

      <tr ng-repeat="User in Users">
          <td>{{User.Name}}</td>
          <td>{{User.ID}}</td>
          <td>{{User.DOB}}</td>
          <td>{{User.Status}}</td>
      </tr>
      

      DEMO

      【讨论】:

      • $cookies.put 在处理对象时对我不起作用...此外,我开始使用 cookie,因为每次用户刷新页面时 $scope.users 都会被清除,因此我需要更多持久性数据存储
      • @ElenaDBA 检查演示,你的角度版本应该在 1.4 以上
      • 我使用 angular 1.5.8
      【解决方案3】:

      我重新创建了您的场景,没有任何问题。您使用的是哪个版本的 $cookies?它应该与您的角度版本相匹配。

      至于持久化数据,我能想到的唯一其他选择是将其保存到服务器。服务无法正常工作,因为刷新也会清除它。

      【讨论】:

        猜你喜欢
        • 2012-02-20
        • 1970-01-01
        • 2014-04-23
        • 2015-08-20
        • 2012-07-08
        • 1970-01-01
        • 1970-01-01
        • 2015-03-31
        • 2011-09-30
        相关资源
        最近更新 更多