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]);
});
}