Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 将旧项目与新项目一起从存储区推送到阵列中,然后将所有项目保存到存储区_Angular_Ionic Framework - Fatal编程技术网

Angular 将旧项目与新项目一起从存储区推送到阵列中,然后将所有项目保存到存储区

Angular 将旧项目与新项目一起从存储区推送到阵列中,然后将所有项目保存到存储区,angular,ionic-framework,Angular,Ionic Framework,我有一个类似购物车的应用程序。用户搜索产品并可以将其添加到购物车中。添加后,他们可以结帐或返回并添加更多项目 问题是,当添加新项时,旧项将被提取并放入一个对象数组中。但是,旧项目也保留为对象,例如 Object1 Object2 Array[Object1, Object2] Object3 [Object, Object, Array(2), Object] 如果我添加另一项,它将成为 [Object1, Object,2 Array(2), Object3, Array(4), Obje

我有一个类似购物车的应用程序。用户搜索产品并可以将其添加到购物车中。添加后,他们可以结帐或返回并添加更多项目

问题是,当添加新项时,旧项将被提取并放入一个对象数组中。但是,旧项目也保留为对象,例如

Object1
Object2
Array[Object1, Object2]
Object3

[Object, Object, Array(2), Object]
如果我添加另一项,它将成为

[Object1, Object,2 Array(2), Object3, Array(4), Object4]
我做错了什么

dataStorage.ts

temp = [];
temp2 = [];

// How data is saved 
save(data): Promise<any> {
  return this.getData().then((products: any[]) => {
    if (products) {
      //this.temp = products;
      this.temp.push(products, data);
      console.log(this.temp);
      return this.storage.set('products', this.temp);
    }
    return this.storage.set('products', data);
  });
}
组件技术

// they click on an add button that calls this 
saveItem() {

let newItem = {
  prodName: this.prodName,
  prodDesc: this.prodDesc
};

this.dataService.save(newItem).then(()=>{
  this.navCtrl.pop(SearchProducts);
});
}

变量
products
是数组,以防存储有它,所以将数组推到
temp
array将是数组中的数组,而不是concat

temp = [];
temp2 = [];

// How data is saved 
save(data): Promise<any> {
  return this.getData().then((products: any[]) => {
    if (products) {
      products.push(data);
      return this.storage.set('products', products);
    }
    return this.storage.set('products', [data]);
  });
}
temp=[];
temp2=[];
//如何保存数据
保存(数据):承诺{
返回此.getData()。然后((产品:any[])=>{
if(产品){
产品。推送(数据);
返回此.storage.set('products',products);
}
返回此.storage.set('products',[data]);
});
}

谢谢!我以前尝试过这个,但它给了我一个错误,说我无法推送产品,但那是因为我缺少
[数据]
temp = [];
temp2 = [];

// How data is saved 
save(data): Promise<any> {
  return this.getData().then((products: any[]) => {
    if (products) {
      products.push(data);
      return this.storage.set('products', products);
    }
    return this.storage.set('products', [data]);
  });
}