在离子应用程序中,我想向购物车中添加某种产品,然后在页面上列出用户购买的所有产品。
我已经实现了提供程序。
服务文件ProductProvider
load() {
return this.products = [
{ id: 1, name: "McFlurry", price: 2, enseigne: "McDonalds", inBag: false },
{ id: 2, name: "Potatoes", price: 3, enseigne: "McDonalds", inBag: false },
{ id: 3, name: "BigMac", price: 4, enseigne: "KFC", inBag: false },
{ id: 4, name: "Nuggets", price: 3, enseigne: "KFC", inBag: false }
];
}
添加项目的功能(我从上一页的navparams获得了这些值)
addToBasket(name: string, price: number) {
this.event.publish("cart:updated", this.count);
productProvider.setInbag(true)
this.viewCtrl.dismiss();
}
我不知道如何从数组中选择某个对象以将inBag变量设置为true。
答案 0 :(得分:1)
您将必须将该名称传递给productProvider.setInbag(true)函数:
例如:服务文件ProductProvider
setInbag(name: string, inbag: boolean) {
var product = this.products.find(f => f.name === name);
product.inBag = inbag;
}
find方法存在于数组中,并将返回谓词(f => f.name === name)为true的第一项。
附带说明:
我看到您的产品具有id属性。您应该使用它来传递所选产品,而不是其名称。产品可能针对不同的系有相同的名称。