【发布时间】:2020-03-23 21:50:08
【问题描述】:
单击按钮后我想更改所选行的背景颜色 我试过但改变了所有行的颜色。 这是一个类似的代码。
HTML
<tr *ngFor="let data of (datas$ | async) | filter:authService.filter | paginate: config | orderBy: key : reverse" [ngClass]="{'data-selected':isSelected}">
<td>{{data.id}}</td>
<td>{{data.text}}</td>
<td>
<a class="mr-3" (click)="delete(data.id)"><i class="fa fa-remove"></i>
Remove
</a>
</td>
</tr>
TS
delete(postId) {
this.isSelected=true;
const ans = confirm('TEXT TEXT '+dataid);
if (ans) {
this.dataService.deleteData(postId).subscribe((data) => {
if(data) {
this.showSuccessDelete();
} else {
this.showError();
}
this.isSelected=false;
this.loadDatas();
});
}
}
CSS
.data-selected{
background-color: #e9eaea;
}
非常感谢
【问题讨论】:
-
你处理isSelected的方式不适合我个人的看法。您可以将其作为数据结构的一部分,当您 *ngFor 您的 html 时,您应该从数据结构中应用它,当单击 delete() 时,您将收到项目的 ID,现在更改数据结构中的状态。 . 这样你可以在重播时保持当前状态... data :[ { name: "joe", selected: false}, ....]
标签: css angular html-table angular8