我正在尝试对用角钢构造的桌子进行排序。按照文档的示例:https://v5.material.angular.io/components/table/examples当列的名称与数据属性名称匹配时,我设法按列对表进行排序。
例如,如果我的对象是:foo.name
,当我使用时:
html:
<table style="width: 100%;" mat-table [dataSource]="dataSource" matSort>
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Name </th>
<td mat-cell *matCellDef="let row"> {{ row.name }} </td>
</ng-container
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
ts:
displayedColumns: Array<string> = ['name'];
工作正常。
但是,如果我的对象结构不同(例如,在我的情况下,我在foo.propieties.name
中找到了名称,则找不到按名称排序的方法。
我发现:
默认情况下,MatTableDataSource进行排序时假设已排序的列名称与该列显示的数据属性名称匹配。
但是对于不正确的情况,我没有找到任何解决方案