试图保存为对象数组,但一直保存为数组数组
问题描述:
我试图实现一个接口,使其更容易发布数据到我的数据库。用户可以选择多个产品,当他们返回搜索更多产品时,页面会刷新,因此我必须将产品保存在本地存储中,直到他们结帐。试图保存为对象数组,但一直保存为数组数组
在我试图实现接口之前,每个附加产品只会作为一个对象存储在数组中。努力实现接口的第一个产品是一个对象,其余后数组的数组对象
AddItem.ts
name: string = this.navParams.get('name');
desc: string = this.navParams.get('desc');
saveItem() {
let newItem = {
name: this.name,
desc: this.desc
};
this.dataStorageService.save(newItem).then(() => {
this.navCtrl.pop(Search);
});
}
DataStorageService.ts
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]);
});
}
的对象是如何被存储在localstorage
以下是我想现在要做的
Order.Interface.ts
export interface Order {
name: string;
desc: string;
}
AddItem.ts
name: string = this.navParams.get('name');
desc: string = this.navParams.get('desc');
orders = [] as Order[];
saveItem(): void {
this.orders.push({name: this.name, desc: this.desc});
this.dataStorageService.save(this.orders).then(() => {
});
DataStorageService.ts
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);
});
}
怎样的产品正在储存
答
我认为这个问题是products.push(data)
相反,我会说你需要这样做
save(data): Promise<any> {
return this.getData().then((products: any[]) => {
if (products) {
products = products.concat(data);
return this.storage.set('products', products);
}
return this.storage.set('products', data);
});
}
也为更好的类型检查,你可以在方法改变这种
save(data : Order[]): Promise<any> {