Angular 数字和文本列的Mat排序问题
我有角材料数据源。角度材质版本为^5.0.3正在进行排序。但是,对于某些列,排序不正确。这里有数字和文字。例如,排序结果如“XXX”、“1”、“1testxt”、“1”、“OPD”、“OXD”、“12”Angular 数字和文本列的Mat排序问题,angular,angular-material,angular-material-5,angular-cdk,Angular,Angular Material,Angular Material 5,Angular Cdk,我有角材料数据源。角度材质版本为^5.0.3正在进行排序。但是,对于某些列,排序不正确。这里有数字和文字。例如,排序结果如“XXX”、“1”、“1testxt”、“1”、“OPD”、“OXD”、“12” 模型 {{element.model} 感谢您的帮助。这是因为标准的sortingDataAccessor将数字字符串强制转换为数字,并且在Javascript1>中的“一”和1都计算为false 作为一种解决方法,您可以定义自己的sortingDataAccessor,而无需强制转换: n
模型
{{element.model}
感谢您的帮助。这是因为标准的
sortingDataAccessor
将数字字符串强制转换为数字,并且在Javascript1>中的“一”和1
都计算为false
作为一种解决方法,您可以定义自己的sortingDataAccessor
,而无需强制转换:
ngAfterViewInit(){
this.dataSource.sort=this.sort;
this.dataSource.sortingDataAccessor=(数据,属性)=>data[属性];
}
此解决方法是从中复制的。您需要去掉那些不是数字的字符,并将包含数字字符的字符串转换为数字类型值
您的初始列值:“ID0239”。
去掉字符后:“0239”。
将字符串转换为数字后:0239
0239是需要在sortingDataAccessor函数中返回的值