Angular2でこの問題を解決するのに役立つものが見つかりませんでした。行を選択するときにcssクラスを設定したいのですが。 (jQueryを使用せずに)
<table class="table table-bordered table-condensed table-hover">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Website</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of companies" (click)="selectedCompany(item, $event)">
<td>{{item.name}}</td>
<td>{{item.email}}</td>
<td>{{item.website}}</td>
</tr>
</tbody>
</table>
Angular2の最終リリースを使用しています
これを行うための解決策はたくさんありますが、そのうちの1つは、クリックすると現在の会社を保存できることです。
_*ngFor
_で、現在のアイテムがcurrentCompany
であるかどうかを確認し、クラスhighlighted
または同じ会社の場合は、任意のクラスを追加します。
_export class TableComponent {
public currentCompany;
public selectCompany(event: any, item: any) {
this.currentCompany = item.name;
}
}
_
そして、テンプレート上で:
_<tr *ngFor="let item of companies" (click)="selectCompany($event, item)"
[class.highlighted]="item.name === currentCompany">
_
-
複数の強調表示された会社が必要な場合の別の解決策は、アイテムにプロパティhighlighted
を追加できます。次に、selectCompany()
でプロパティをtrueに設定します。小切手で_[class.highlighted]="item.highlighted"
_を行います。