首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NGX数据表不按年排序日期

NGX数据表不按年排序日期
EN

Stack Overflow用户
提问于 2018-11-15 22:46:53
回答 2查看 1.3K关注 0票数 0

我正在使用NGX Datatables,除了日期之外,我的所有数据都是正确排序的。似乎NGX的内置排序是从左到右排序的,所以它是按月/日排序的,而不是按年排序的。我正在尝试使用这种格式('MM-DD-YYYY h:mm A')进行排序。如果我改成这种格式('YYYY-MM-DDh:mm A'),它就能正常工作。我看到其他人说使用angular中的竖线日期作为日期,所以我尝试了

代码语言:javascript
运行
复制
{{value | date:'MM-DD-YYYY h:mm A'}}

但这也不起作用。它仍然不能对年份进行排序。因此,它将按月和日进行排序,但年份将是混合的。有谁知道解决这个问题的方法吗?如果没有,有没有办法将自定义排序仅添加到一列?

我目前正在使用此配置,以允许内置排序对我所有的数据进行排序。

代码语言:javascript
运行
复制
 [sorts]="[{prop: 'status', dir: 'desc'}]">

但是,如果我不能让日期列对年份进行排序,我认为我需要为它创建自己的排序。有没有办法保留除一列之外的所有列的自定义排序,并将我自己的排序添加到该列中?任何帮助都将不胜感激!谢谢!

EN

回答 2

Stack Overflow用户

发布于 2018-11-16 00:20:44

我想出了如何获得我想要的功能,以防其他人也有这个问题。我有来自后端的数据,将日期作为YYYY-mm-dd传递,然后在角度端我使用他们的日期管道

代码语言:javascript
运行
复制
{{value | date:'MM-DD-YYYY h:mm A'}}

得到我想要的MM-DD-YYYY格式。似乎只要值以年为先,它就会正确地对其进行排序。

票数 0
EN

Stack Overflow用户

发布于 2020-04-29 02:49:41

这不是最好的方法,但解决这个问题的唯一方法是编写我自己的比较器。

代码语言:javascript
运行
复制
 <ngx-datatable-column prop="datumKnj" [comparator]="datumKnjComparator" name="Datum knj.">
  <ng-template ngx-datatable-cell-template let-value="value">
    {{value | date : 'dd.MM.yyyy'}}
  </ng-template>
</ngx-datatable-column>

比较函数如下所示:

代码语言:javascript
运行
复制
  datumKnjComparator(propA, propB, rowA, rowB) {
    console.log('Sorting Comparator', propA, propB, rowA, rowB);
    // do something with rowA and rowB objects.
    if (rowA.datumKnj < rowB.datumKnj) { return -1; }
    if (rowA.datumKnj > rowB.datumKnj) { return 1; }
  }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53321995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档