簡體   English   中英

如何更新 Angular 中使用 *ngFor 迭代的所有項目的樣式

[英]How to update the style of all the items which are iterated using *ngFor in Angular

當單擊列表外的按鈕時,如何將樣式應用於列表中使用*ngFor迭代的所有項目。

<button (click)="markAllAsChecked();">Mark All as Checked</button>
<ion-list>
  <div *ngFor="let item of items">
    <ion-item (click)="this.item.checked = !this.item.checked;">
      <div class="item" [ngStyle]="{background: item.checked ? 'green': 'red'}">
        {{item.name}}
      </div>
    </ion-item>
  </div>
</ion-list>

單擊“全部標記為已檢查”按鈕時,我希望所有項目的背景顏色都變成綠色。

我使用 Stackblitz 創建了一個工作示例 有人可以幫忙嗎?

您需要迭代每個項目並checked為真。

markAllAsChecked(){
  this.items.forEach(item => item.checked = true);
}

如果你想在同一個按鈕上切換背景顏色,

markAllAsChecked(){
      this.items.forEach(item => item.checked = !item.checked);
}

這是工作鏈接。

使用[ngClass]而不是[ngStyle]

 <div class="item redBackgroundClass" [ngStyle]="{'greenBackgroundClass': item.checked}">

這里的鍵是 CSS 類,當值中給定的表達式計算為真值時添加這些類,否則它們將被刪除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM