【问题标题】:sort pipe is always sorting caseSensitive (ngx-order-pipe)排序管道总是对大小写敏感(ngx-order-pipe)
【发布时间】:2019-04-30 19:39:14
【问题描述】:

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

我有以下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 文件中,我以这种方式定义了排序选项

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

当在 orderBy 管道的第三个参数上说 true 时,应该表示“不区分大小写”排序,但 ng-for 显示的是“ascii”排序中的元素:第一个数字 -> 大写 -> 然后低情况下,我也尝试过 false (这是默认值),没有任何运气

这里是 ngx-order 管道文档 - https://www.npmjs.com/package/ngx-order-pipe

我错过了什么或做错了什么?以及如何解决?

【问题讨论】:

    标签: angular


    【解决方案1】:

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

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

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

    并将SortOptionsname 更改为nameCaseinsensitive

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

    像魅力一样工作,但我不想这样做,我想了解我做错了什么

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多