我需要按名称对不区分大小写的资产项目列表进行排序
对于组件,我有以下ngfor
<app-asset-item
....
*ngFor="
let asset of (contents.assets
| orderBy: assetFolderOrder.sort:assetFolderOrder.reverse:false:true
| FilterPipe: filterargs)">
....
</app-asset-item>
稍后在同一HTML中,我有此排序按钮
<app-sort-action [options]="assetFolderSortOptions">
</app-sort-action>
在Typescrit文件中,我以这种方式定义了Soring选项
assetFolderSortOptions = [
{ name: "A-Z", data: "name" },
{ name: "Upload date", data: "uploadedOn" }
];
当在orderBy管道的第三个参数上说true
时,它的意思是“ caseInsensitive”排序,但是ng-for
以“ ascii”顺序显示元素:第一个数字->大写->然后是低位,我也尝试过false(这是默认设置),没有任何运气
以下是ngx订单管道文档- https://www.npmjs.com/package/ngx-order-pipe
我想念什么或做错什么?以及我该如何解决?
答案 0 :(得分:0)
为解决这个问题,我在asset
对象中创建了一个名为nameCaseinsensitive
的属性。
对于资产数组中的每个对象,我都这样做
asset.nameCaseinsensitive = asset.name.toLowerCase() ;
并将SortOptions
从name
更改为nameCaseinsensitive
assetFolderSortOptions = [
{ name: "A-Z", data: "nameCaseinsensitive" },
{ name: "Upload date", data: "uploadedOn" }
];
作品像一种魅力,但我不想这样做,我想了解自己做错了什么