如何解决MatSort:属性名称与 matColumnDef 不同 -> 不工作
是否有机会在属性名称与 matColumnDef 不同的 Angular 表中使用 matSort 对列进行排序:
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header>TEST</th>
<td mat-cell *matCellDef="let box"> {{box.input.name}} </td>
</ng-container>
解决方法
解决了以下问题https://stackblitz.com/edit/mattable-with-sorting-custom?file=app%2Ftable-sorting-example.ts
因此更名
matColumnDef="name"
到
matColumnDef="input.name"
也在
public displayedLoadingPointColumns: string[] = ['input.name',...
在 .ts 文件中添加了这个方法
sortColumn($event: Sort): void {
this.dataSource.sortingDataAccessor = (item,property) => {
switch (property) {
case 'input.name': {
return item.input.name;
}
default: {
return item[property]; }
}
};
}
在html中它看起来如下:
<table mat-table [dataSource]="this.dataSource" matSort (matSortChange)="sortColumn($event)">
<ng-container matColumnDef="input.name">
<th mat-header-cell *matHeaderCellDef mat-sort-header>Title</th>
<td mat-cell *matCellDef="let whatevet"> {{whatever.input.name}}</td>
</ng-container>
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。