多类添加到动态物体时,它具有(4)

多类添加到动态物体时,它具有(4)

问题描述:

我有一些麻烦来定义特定的类做的动感元素,看看这个JSON已经是ngClass条件角度:多类添加到动态物体时,它具有(4)

filterData = { 
    "highlights": { 
     "title": "Destaques", 
     "options": [{ 
      "id": 1, 
      "title": "Outlet", 
      "alias": "outlet", 
      "counter": 3, 
      "classes": ["outlet", "feb", "jun"] 
     }, { 
      "id": 2, 
      "title": "Novidades", 
      "alias": "news", 
      "counter": 0, 
      "classes": ["news", "may"] 
     }, { 
      "id": 3, 
      "title": "Promoção", 
      "alias": "promo", 
      "counter": 1, 
      "classes": ["promo"] 
     }] 
    } 
} 

每个按钮有其选择类,如果它是由用户选择,或者不考虑:

<div 
    *ngIf="filterEnabled" 
    class="filters_btns" 
> 
    <button 
     *ngFor="let item of filtersList.options" 
     type="button" 
     class="btn" 
     (click)="toggleFilterOption(item)" 
     [ngClass]="{ 'selected': filterData[item.id]" <-- also add all of the classes of this array (item.classes) if some exists 
    >{{ item.title }}</button> 

</div> 

有没有办法做到这一点?添加的类的阵列(如果它们存在的话),并且还根据筛选数据[item.id] (布尔值)

可以使用类为该绑定添加“选择”类:

[class.selected]="filterData[item.id]" 

和ngClass为你列出:

[ngClass]="item[classes]" 
+0

感谢梅厄,它完美的作品!只是一个小小的更正,**类**是项目的一个属性,所以它将如下所示:** item.classes **或** item ['classes'] ** –

+0

您是对的。我专注于语法,而不是具体细节 – Meir