【发布时间】: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) 中显示:
问题是在我的本地存储中我只保存了一个号码, 覆盖前一个变量。在另一个控制器-> 功能我有这个:
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中
rutnum的值? -
是的,我覆盖了值
-
你有什么解决办法吗?请。
-
它只存储一个值,因为你一直在覆盖它。 Localstorage 是一个映射,如果你想要很多值,它们必须有唯一的键。
-
为您存储的每个值添加一个唯一键。现在你只使用“rutnum”。例如,在您的情况下,您可以在 for 循环中使用“i”。我不知道你的数据代表什么或你的用例是什么,所以可能有更合适的键。
标签: javascript angularjs arrays local-storage