【问题标题】:NgClass: if array contains itemNgClass:如果数组包含项目
【发布时间】:2019-02-04 06:05:26
【问题描述】:

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

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

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

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

【问题讨论】:

标签: angular typescript


【解决方案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>

【讨论】:

  • 太棒了,谢谢。不知道 JavaScript 语句会起作用 :)
【解决方案2】:

使用[class.className]也可以做到这一点。

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

【讨论】:

    猜你喜欢
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 2012-04-17
    相关资源
    最近更新 更多