我正在尝试将具有一个数组和一个整数的对象保存在本地存储中。
var test = potenciaFacturaService.getPotencia(JSON.parse(getVariable("facturas")),null,getVariable("tipo_contrato"));
console.log(test);
var new_facturas = {
info: test,
error:0
};
console.log(new_facturas);
setVariable("new_facturas", JSON.stringify(new_facturas));
在服务中调用方法时,我的test
变量获取一个数组,我尝试使用方法setVariable
保存该对象,该方法仅调用要保存在localStorage中的数据。
打印new_facturas
的值时,这是输出
{info: Array(0), error: 0}
error:0
info:Array(15)
0:{id: "776142", kwh: 0}
1:{id: "1269777", kwh: 7045}
2:{id: "887831", kwh: 0}
3:{id: "562951", kwh: 0}
4:{id: "390243", kwh: 1995}
5:{id: "669372", kwh: 0}
6:{id: "1019550", kwh: 0}
7:{id: "469265", kwh: 0}
8:{id: "1145145", kwh: 0}
9:{id: "253231", kwh: 0}
10:{id: "150663", kwh: 9191}
11:{id: "318047", kwh: 0}
12:{id: "119228", kwh: 0}
13:{id: "93050", kwh: 399.999}
14:{id: "201014", kwh: 23}
但是当检查localStorage时我有这个。
{info: [], error: 0}
error:0
info:[]
空数组,有人可以帮助我解决这个问题吗?
编辑。添加getPotencia
this.getPotencia= function(facturas, id,tipocontrato){
console.log(facturas);
console.log(id);
console.log(tipocontrato);
var potencias = [];
var flag;
filtrar();
function filtrar(){
Object.entries(facturas).forEach(([key,val])=>{
if (key=="info"){
Object.entries(val).forEach(([key,valor])=>{
//console.log(valor.id);
$http({
url:'http://api',
method:"POST",
data:{id_factura:valor.id, tipo_contrato:tipocontrato},
headers:{
"Content-Type":"application/json; charset=utf-8"
}
})
.then(function(response){
//console.log(response.data);
if (response.data.error==0){
//console.log(response.data.factura.length);
var suma=0;
var id;
if (response.data.factura.length>1){
for (var i=0;i<response.data.factura.length;i++){
// console.log(response.data.factura[i].kwh);
suma = suma + parseFloat(response.data.factura[i].kwh);
id = response.data.factura[1].factura_id;
}
if (id==valor.id){
console.log(valor.kwh=suma);
console.log(valor);
potencias.push({
id: valor.id,
kwh:suma
});
}
}
if (response.data.factura.length==1){
if (response.data.factura[0].factura_id==valor.id){
valor.kwh = response.data.factura[0].kwh;
potencias.push({
id: valor.id,
kwh:parseFloat(response.data.factura[0].kwh)
});
}
}
}
})
})
console.log(val);
console.log(potencias);
agregar(potencias);
}
})
}
function agregar(facturas){
console.log("agregando");
console.log(typeof facturas);
for (var i=0; i<facturas.length;i++){
console.log(facturas[i]);
}
}
return potencias;
}
答案 0 :(得分:0)
我认为问题是异步的,试图在foreach循环上调用$http
时,我做了几乎相同的事情,只是在服务器端。在foreach循环中进行查询并返回该信息。