How to set active " - Klasse auf der Liste der Schaltflächen

Ich habe eine Winkel 2 Anwendung, die eine Komponente enthält eine Liste der filter-Tasten.
Einer von Ihnen kann aktiv zu jeder Zeit.
Die Schaltfläche Definitionen kommen von einigen json und wird eines Tages vom server gesendet.

Mein problem ist, wie man einen Stil in der aktuellen Schaltfläche.
Sollte ich es einstellen im click-event-handler? So wie ich weiß, auf welche Schaltfläche geklickt wurde?

Meine Komponente sieht wie folgt aus :

import { Component, EventEmitter, Output }  from '@angular/core';

@Component({
    selector: 'tileFilter',
    template: require('./tileFilter.component.html'),
    styles: [require('.//tileFilter.component.scss').toString()]
})

export class TileFilterComponent {

@Output() onCategorySelected = new EventEmitter<number>();

public activeClass: string = "nonactive"

 private categories: any[] = [
    { "Id": 0, "Name": "All" },
    { "Id": 3, "Name": "Popup" },
    { "Id": 4, "Name": "Cafe" },
    { "Id": 5, "Name": "Pub or bar" },
    { "Id": 9, "Name": "Restaurant" }
];

    constructor() {}

    onClick(category:any){
        this.activeClass ="active";
        this.onCategorySelected.emit(<number>category.Id);
    }

}

Und meine HTML sieht wie folgt aus :

<ul class="tile-filters inline-list inline-list--sm unstyled-list collapse">
  <li *ngFor="let c of categories">
      <button class="button button--recede button--sm {{activeClass}}" (click)="onClick(c)">{{c.Name}}</button>
  </li>
</ul>

Was ist der häufigste Muster für diese?

InformationsquelleAutor Ben Cameron | 2016-07-26

Schreibe einen Kommentar