如何在localstorage中保存object,var,array?

时间:2016-10-21 14:55:56

标签: javascript angularjs arrays local-storage

在我的控制器中我有这个请愿书$ 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

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

      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中显示的只是一个数字而不是我想要的所有车辙编号。

这是localstorage的照片:

pic 2

1 个答案:

答案 0 :(得分:0)

只需将所有对象推入数组,然后使用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"));