【发布时间】:2026-01-25 01:45:01
【问题描述】:
如何更改下面的 Angular Material 代码,以便数据表按“名称”列排序,默认为升序。必须显示箭头(指示当前排序方向)。
这就是我想要实现的目标:
原码:
<table matSort (matSortChange)="sortData($event)">
<tr>
<th mat-sort-header="name">Dessert (100g)</th>
<th mat-sort-header="calories">Calories</th>
<th mat-sort-header="fat">Fat (g)</th>
<th mat-sort-header="carbs">Carbs (g)</th>
<th mat-sort-header="protein">Protein (g)</th>
</tr>
<tr *ngFor="let dessert of sortedData">
<td>{{dessert.name}}</td>
<td>{{dessert.calories}}</td>
<td>{{dessert.fat}}</td>
<td>{{dessert.carbs}}</td>
<td>{{dessert.protein}}</td>
</tr>
</table>
我正在尝试这样的事情,但它不起作用(未显示箭头,未排序)
<table matSort (matSortChange)="sortData($event)" matSortActive="name" matSortStart="asc" matSortDisableClear>
这里是Plunker的链接
【问题讨论】:
-
可以在
ngOnInit上调用this.sortData({active: "name", direction: "asc"})检查plunker -
@PankajParkar 这不是正确的解决方案。表格已排序,但排序标题不知道它,并且箭头(指示当前排序方向)不显示。