试图保存为对象数组,但一直保存为数组数组

试图保存为对象数组,但一直保存为数组数组

问题描述:

我试图实现一个接口,使其更容易发布数据到我的数据库。用户可以选择多个产品,当他们返回搜索更多产品时,页面会刷新,因此我必须将产品保存在本地存储中,直到他们结帐。试图保存为对象数组,但一直保存为数组数组

在我试图实现接口之前,每个附加产品只会作为一个对象存储在数组中。努力实现接口的第一个产品是一个对象,其余后数组的数组对象

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

enter image description here

以下是我想现在要做的

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

怎样的产品正在储存

enter image description here

我认为这个问题是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> {