#javascript #angularjs #arrays #local-storage
#javascript #angularjs #массивы #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)
показе это:
Проблема в том, что в моем localstorage я сохраняю только одно число, перезаписывая предыдущую переменную. В другом контроллере-> функция у меня есть это:
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 отображается только одно число, а не все номера rut, как я хочу.
Это изображение localstorage:
Комментарии:
1. Вы каждый раз перезаписываете значение
rutnum
в localstorage?2. да, я перезаписываю значение
3. у вас есть какое-либо решение для меня? пожалуйста.
4. Он сохраняет только одно значение, потому что вы продолжаете его перезаписывать. Localstorage — это карта, если вам нужно много значений, они должны иметь уникальные ключи.
5. Добавьте уникальный ключ для каждого значения, которое вы сохраняете. Прямо сейчас вы используете только «rutnum». В вашем случае вы могли бы использовать ‘i’ в вашем цикле for, например. Я не знаю, что представляют ваши данные или каков ваш вариант использования, поэтому могут быть более подходящие ключи.
Ответ №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"));