NgClass:如果数组包含项

时间:2018-08-29 12:36:22

标签: angular typescript

如果该项目存在于数组中,我正在尝试触发一个类,但是我无法弄清楚。

  <div *ngFor="let item of someList">

     <button [ngClass]="{'isSelected': selectedArr contains item}"></button>
    ..

selectedArr是包含某些项目的数组。

2 个答案:

答案 0 :(得分:1)

selectedArr.includes(item)将起作用。参见:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes

请注意,如果item是一个对象,则selectedArr必须具有 same 对象,而不仅仅是具有相同属性的对象。否则,您将不得不寻找一种不同的方法来比较对象的属性,以查看是否存在匹配项。无论如何,任何有效的JavaScript语句都可以用作isSelected的值。

<button [ngClass]="{'isSelected': selectedArr.includes(item)}"></button>

答案 1 :(得分:0)

使用也可以使用[class.className]来完成。

<button [class.isSelected]="selectedArr.indexOf(item) != -1"></button>