排序管道始终为大小写排序敏感(ngx-order-pipe)

时间:2019-04-30 19:39:14

标签: angular

我需要按名称对不区分大小写的资产项目列表进行排序

对于组件,我有以下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

我想念什么或做错什么?以及我该如何解决?

1 个答案:

答案 0 :(得分:0)

为解决这个问题,我在asset对象中创建了一个名为nameCaseinsensitive的属性。

对于资产数组中的每个对象,我都这样做

asset.nameCaseinsensitive = asset.name.toLowerCase() ;

并将SortOptionsname更改为nameCaseinsensitive

assetFolderSortOptions = [
    { name: "A-Z", data: "nameCaseinsensitive" },
    { name: "Upload date", data: "uploadedOn" }
  ];

作品像一种魅力,但我不想这样做,我想了解自己做错了什么