角度数据表排序仅适用于1列?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了角度数据表排序仅适用于1列?相关的知识,希望对你有一定的参考价值。
列排序适用于列Id,但它不适用于第二列,为什么会这样?
<mat-table #detailsTable #detailsSort="matSort" [dataSource]="details" matSort>
<ng-container matColumnDef="id">
<mat-header-cell *matHeaderCellDef mat-sort-header> Id </mat-header-cell>
<mat-cell *matCellDef="let detail"> {{detail.id}} </mat-cell>
</ng-container>
<ng-container matColumnDef="invoiceCurrencyNetValue">
<mat-header-cell *matHeaderCellDef mat-sort-header> Net value </mat-header-cell>
<mat-cell *matCellDef="let detail"> {{detail.attributes.invoiceCurrencyNetValue}} </mat-cell>
</ng-container>
<mat-header-row *matHeaderRowDef="this.detailsColumns; sticky: true"></mat-header-row>
<mat-row *matRowDef="let row; columns: this.detailsColumns;" matRipple class="element-row"></mat-row>
</mat-table>
这就是我在.ts
文件中设置数据和排序的方式:
details = new MatTableDataSource(details.data);
details.sort = this.detailsSort;
这是列声明:
detailsColumns = [
'id', 'invoiceCurrencyNetValue'
];
答案
很可能是因为你的attributes
是一个对象,并且排序期望一个实际值。
例如detail.id可以按id值排序,但detail.attributes.invoiceCurrencyNetValue无法排序,因为它是一个对象,而不是实际值。
你可以从这里开始:Angular Material 2 DataTable Sorting with nested objects
作为参考,您可以使用“sortingDataAccessor
”扩展排序功能
以上是关于角度数据表排序仅适用于1列?的主要内容,如果未能解决你的问题,请参考以下文章