2017-06-21 13 views
0

我有一些麻煩來定義特定的類做的動感元素,看看這個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] (布爾值)

回答

1

可以使用類爲該綁定添加「選擇」類:

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

和ngClass爲你列出:

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

感謝梅厄,它完美的作品!只是一個小小的更正,**類**是項目的一個屬性,所以它將如下所示:** item.classes **或** item ['classes'] ** –

+0

您是對的。我專注於語法,而不是具體細節 – Meir