从提供商处将某个变量更改为 true
Change a certain variable to true from a provider
在我的 ionic 应用程序中,我想将特定产品添加到我的购物车,然后在页面中列出用户已购买的所有产品。
我已经实施了提供程序。
服务文件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();
}
我不知道如何 select 我的数组中的某个对象将 inBag 变量设置为 true。
您必须将名称传递给 productProvider.setInbag(true) 函数:
例如:服务文件 ProductProvider
setInbag(name: string, inbag: boolean) {
var product = this.products.find(f => f.name === name);
product.inBag = inbag;
}
find 方法存在于数组中,并将 return 谓词 (f => f.name === name) 为真的第一项。
旁注:
我看到您的产品有一个 ID 属性。您应该使用它来传递所选产品而不是它的名称。不同 enseigne 的产品可能具有相同的名称。
在我的 ionic 应用程序中,我想将特定产品添加到我的购物车,然后在页面中列出用户已购买的所有产品。
我已经实施了提供程序。
服务文件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();
}
我不知道如何 select 我的数组中的某个对象将 inBag 变量设置为 true。
您必须将名称传递给 productProvider.setInbag(true) 函数:
例如:服务文件 ProductProvider
setInbag(name: string, inbag: boolean) {
var product = this.products.find(f => f.name === name);
product.inBag = inbag;
}
find 方法存在于数组中,并将 return 谓词 (f => f.name === name) 为真的第一项。
旁注:
我看到您的产品有一个 ID 属性。您应该使用它来传递所选产品而不是它的名称。不同 enseigne 的产品可能具有相同的名称。