我正在使用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'}]">
我认为,如果我无法对日期进行排序,则需要为日期列创建自己的排序。有没有一种方法可以保留除一个列以外的所有列的自定义排序,并将我自己的排序添加到该列?任何帮助,将不胜感激!谢谢!
答案 0 :(得分:0)
我想出了如何获得想要的功能,以防其他人也遇到此问题。我有来自后端的数据,将日期作为YYYY-mm-dd传递,然后在Angular端,我正在使用其日期管道
{{value | date:'MM-DD-YYYY h:mm A'}}
获取我想要的MM-DD-YYYY格式。看起来只要输入的值是第一年,它就可以正确地对其进行排序。
答案 1 :(得分:0)
这不是最佳方法,但是解决此问题的唯一方法是编写自己的比较器。
<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>
compare函数如下所示:
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; }
}