gpt4 book ai didi

angular - 数字和文本列的垫子排序问题

转载 作者:行者123 更新时间:2023-12-01 00:19:56 24 4
gpt4 key购买 nike

我有 Angular Material 数据源。 Angular Material 版本是 ^5.0.3 排序工作。但是,对于某些列,它的排序不正确。数字和文本在哪里。例如,排序结果如“XXX”、“1”、“1tesxt”、“1”、“OPD”、“OXD”、“12”。

<mat-table #table [dataSource]="dataSource" matSort > 
<ng-container matColumnDef="model">
<mat-header-cell *matHeaderCellDef mat-sort-header> Model </mat-header-cell>
<mat-cell *matCellDef="let element"> {{element.model}} </mat-cell>
</ng-container>

感谢您的帮助。

最佳答案

这是因为标准 sortingDataAccessor 将数字字符串转换为数字,并且在 Javascript 中 1 > 'one'1 < 'one' 都计算为 false
作为一种解决方法,您可以定义自己的 sortingDataAccessor 而无需强制转换:

ngAfterViewInit() {    
this.dataSource.sort = this.sort;
this.dataSource.sortingDataAccessor = (data, attribute) => data[attribute];
}
解决方法是从这个 Github issue 复制的。

关于angular - 数字和文本列的垫子排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49527784/

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