如何在使用 Angular 在 Ionic 中单击时使用 *ngFor 将样式应用于数组中的特定项目迭代

How to apply style to specific item in the array iterating using *ngFor when on click in Ionic using Angular

我正在尝试在单击时为可迭代数组中的特定项目应用样式。我面临的问题是,它将样式应用于数组中的整个项目。

我只想在单击按钮时将样式动态应用到该特定索引。

以下是我的代码摘录

HTML 文件

<ion-list>
  <ion-item-sliding *ngFor="let car of cars; let i=index;" #item>
    <ion-item [ngStyle]="car.sold || isSold ? {color: 'red'} : ''">
      <ion-label>{{car.name}}</ion-label>
    </ion-item>
    <ion-item-options icon-start>
      <button ion-button (click)="markAsSold(car, i, item)">
          Mark as Sold
        </button>
    </ion-item-options>
  </ion-item-sliding>
</ion-list> 

TS文件

isSold = false; 

markAsSold(car, index, item){
  this.isSold = !car.sold;
  item.close();
}

我使用 Stackblitz 创建了一个 working example。有人可以帮忙吗?

通过归因 this.isSold 并验证 car.sold || isSold 它将 return isSold 这是每个项目的全局值。

您应该在没有 isSold 的情况下验证 ngStyle,如果您更改标志:car.sold = !car.sold,您的销售逻辑应仅归因于特定项目,并且 [=13] =] 作为 car.sold ? {color: 'red'} : ''