【问题标题】:How to save object, var, array in localstorage?如何在本地存储中保存对象、变量、数组?
【发布时间】:2017-03-03 22:51:20
【问题描述】:

在我的控制器中我有这个请愿 $http:

    $http({
    method: 'POST',
    url: 'http://localhost/nPanelarencion/app/php/consulta.php',
    headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
})

  .then(function(data) {
     var dat = data.data;

     for (var i = 0; i < dat.length; i++) {
       dat[i]
      var runum = dat[i].rut +","+ dat[i].numero
      console.log("show: ",runum);
      localStorage.setItem("rutnum",runum);
     }
  });

在我的console.log(runum) 中显示:

Image

问题是在我的本地存储中我只保存了一个号码, 覆盖前一个变量。在另一个控制器-> 功能我有这个:

      function loadAll() {
    var rut = localStorage.getItem("rutnum").split(",")[0];
    console.log("el rut es: ",JSON.stringify(rut));


    var num = localStorage.getItem("rutnum").split(",")[1];
    console.log("El numero es: ",parseInt(num));
    var finalnum = parseInt(num)

    var repos = [
      {
        'rut'      : rut,
        'numero'   : finalnum

      }

    ];
    return repos.map( function (repo) {
      repo.value = repo.rut.toLowerCase();
      return repo;
    });
  }

在我的 html 中显示的只是一个数字,而不是我想要的所有常规数字。

这是本地存储的图片:

pic 2

【问题讨论】:

  • 你是否每次都覆盖localstorage中rutnum的值?
  • 是的,我覆盖了值
  • 你有什么解决办法吗?请。
  • 它只存储一个值,因为你一直在覆盖它。 Localstorage 是一个映射,如果你想要很多值,它们必须有唯一的键。
  • 为您存储的每个值添加一个唯一键。现在你只使用“rutnum”。例如,在您的情况下,您可以在 for 循环中使用“i”。我不知道你的数据代表什么或你的用例是什么,所以可能有更合适的键。

标签: javascript angularjs arrays local-storage


【解决方案1】:

只需将所有对象推送到一个数组中,然后使用stringify 将该数组保存在本地存储中:

.then(function(data) {
     var dat = data.data;
     var runum = [];
     for (var i = 0; i < dat.length; i++) {
       dat[i]
       runum.push(dat[i].rut +","+ dat[i].numero);
       console.log("show: ",runum);
     }

     localStorage.setItem("rutnum",JSON.stringify(runum));
  });

当您需要从存储中取回数据时,您必须parse他们:

var my_data = JSON.parse(localStorage.getItem("rutnum"));

【讨论】:

    猜你喜欢
    • 2021-09-22
    • 2023-03-14
    • 2020-06-13
    • 1970-01-01
    • 2013-09-22
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    相关资源
    最近更新 更多