【发布时间】:2021-05-14 20:28:03
【问题描述】:
我有一个要求,在 HTML 表格中,我必须根据属性名称对表格的值进行排序。 请参考下面的代码
<h2>{{modifiedBy}} {{order}}</h2>
<table class="table table-striped border mt-1">
<thead>
<tr>
<th scope="col" (click)="sortBy('id', 'desc')">Id <i *ngIf="modifiedBy!=='id'" class="fa fa-arrow-down"></i>
<i *ngIf="order==='desc' && modifiedBy==='id'" class="fa fa-arrow-down"></i>
<i *ngIf="order==='asc' && modifiedBy==='id'" class="fa fa-arrow-up"></i>
</th>
<th scope="col" (click)="sortBy('name', 'desc')">Name
<i *ngIf="modifiedBy!=='name'" class="fa fa-arrow-down"></i>
<i *ngIf="order==='desc' && modifiedBy==='name'" class="fa fa-arrow-down"></i>
<i *ngIf="order==='asc' && modifiedBy==='name'" class="fa fa-arrow-up"></i>
</th>
<th scope="col" (click)="sortBy('age', 'desc')">Age
<i *ngIf="modifiedBy!=='age'" class="fa fa-arrow-down"></i>
<i *ngIf="order==='desc' && modifiedBy==='age'" class="fa fa-arrow-down"></i>
<i *ngIf="order==='asc' && modifiedBy==='age'" class="fa fa-arrow-up"></i>
</th>
<th scope="col" (click)="sortBy('dob', 'desc')">Date Of Birth
<i *ngIf="order==='asc' && modifiedBy==='dob'" class="fa fa-arrow-down"></i>
<i *ngIf="order==='desc' && modifiedBy==='dob'" class="fa fa-arrow-up"></i>
</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let data of dataList | orderBy:modifiedBy:order:dateType">
<td>{{ data.id }}</td>
<td>{{ data.name }}</td>
<td>{{ data.age }}</td>
<td>{{ data.dob }}</td>
</tr>
</tbody>
</table>
加载时,表格将使用“dob”属性按降序排序,“dob”表格标题单元格的箭头图标将有一个向上的箭头,其余部分将向下(asc:向下箭头,描述:向上箭头)。
现在,每当我单击要排序的任何表头单元格时,我想做的是根据单击的表头单元格的属性对表数据进行排序,并且箭头图标应根据 asc 或描述请注意,在对表头进行排序时,不应干扰其他表头单元格的箭头图标。
我已经提出了一些部分工作的代码。我无法继续前进,因为我正在努力解决其余的逻辑。 此外,我为每个表头有条件地使用了两个图标。是否可以为每个表头使用一个图标?
【问题讨论】:
标签: html angular typescript