NGX数据表未按年份对日期进行排序



我正在使用NGX数据表,除了日期之外,我的所有数据都正确排序。NGX的内置排序似乎是从左到右排序,所以它按月/日排序,而不是按年排序。我正在尝试使用这种格式('MM-DD-YYYY h:MM A'(进行排序。如果我改成这种格式(YYYY-MM-DDh:MM A'(,它就可以正常工作。我看到别人说用管道日期来表示日期,所以我尝试了

{{value | date:'MM-DD-YYYY h:mm A'}}

但这也没有奏效。它仍然无法对年份进行排序。因此,它会对月份和日期进行排序,但年份会好坏参半。有人知道解决这个问题的办法吗?如果没有,有没有办法只给一列添加自定义排序?

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

[sorts]="[{prop: 'status', dir: 'desc'}]">

不过,如果我无法对年份进行排序,我想我需要为日期列创建自己的排序。有没有一种方法可以保留除一列之外的所有列的自定义排序,并将我自己的排序添加到该列?任何帮助都将不胜感激!非常感谢。

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

{{value | date:'MM-DD-YYYY h:mm A'}}

以获得我想要的MM-DD-YYYY格式。似乎只要值是第一年的,它就会正确排序。

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

<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>

比较函数如下所示:

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; }
}

最新更新