我有角度材料数据源。角度材料版本是 ^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 中将数字字符串转换为 number 和1 > 'one'
and 1 < 'one'
两者的评估结果都是false
.
作为解决方法,您可以定义自己的sortingDataAccessor
没有演员表:
ngAfterViewInit() {
this.dataSource.sort = this.sort;
this.dataSource.sortingDataAccessor = (data, attribute) => data[attribute];
}
解决方法是从这里复制的Github问题 https://github.com/angular/material2/issues/9966#issuecomment-365942460.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)