从提供商处将某个变量更改为 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 的产品可能具有相同的名称。