gpt4 book ai didi

Angular:在数据源中使用对象时,MatSort 不起作用

转载 作者:行者123 更新时间:2023-12-04 01:12:52 26 4
gpt4 key购买 nike

我有一个 Angular 6 应用程序,它有一个 Mat Table。该表的数据填充如下。排序适用于字段 positionname,但不适用于作为 一部分的 weightsymbol详细 对象。我还尝试在 displayedColumnsmatColumnDef 中命名像 detail.weight 这样的列,但没有成功。请指教我做错了什么?

const ELEMENT_DATA: PeriodicElement[] = [
{position: 1, name: 'Hydrogen', detail: {weight: 4.0026, symbol: 'He'}},
{position: 2, name: 'Helium', detail: {weight: 4.0026, symbol: 'He'}},
]

displayedColumns: string[] = ['position', 'name', 'weight', 'symbol'];

模板

 <ng-container matColumnDef="weight">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Weight </th>
<td mat-cell *matCellDef="let element"> {{element.detail.weight}} </td>
</ng-container>

这是该问题的 stackblitz url
https://stackblitz.com/edit/angular-kumdeq

最佳答案

使用sortingDataAccessor,其中

Allows for sort customization by overriding sortingDataAccessor, which defines how data properties are accessed.

在 ngOnInit 中添加这段代码:

   this.dataSource.sortingDataAccessor = (item, property) => {
switch (property) {
case 'weight': return item.detail.weight;
case 'symbol': return item.detail.symbol;
default: return item[property];
}

链接:https://stackblitz.com/edit/angular-kumdeq-z4bags

关于Angular:在数据源中使用对象时,MatSort 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55030357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com