我正在使用NGX Datatables,除了日期之外,我的所有数据都是正确排序的。似乎NGX的内置排序是从左到右排序的,所以它是按月/日排序的,而不是按年排序的。我正在尝试使用这种格式('MM-DD-YYYY h:mm A')进行排序。如果我改成这种格式('YYYY-MM-DDh:mm A'),它就能正常工作。我看到其他人说使用angular中的竖线日期作为日期,所以我尝试了
{{value | date:'MM-DD-YYYY h:mm A'}}但这也不起作用。它仍然不能对年份进行排序。因此,它将按月和日进行排序,但年份将是混合的。有谁知道解决这个问题的方法吗?如果没有,有没有办法将自定义排序仅添加到一列?
我目前正在使用此配置,以允许内置排序对我所有的数据进行排序。
[sorts]="[{prop: 'status', dir: 'desc'}]">但是,如果我不能让日期列对年份进行排序,我认为我需要为它创建自己的排序。有没有办法保留除一列之外的所有列的自定义排序,并将我自己的排序添加到该列中?任何帮助都将不胜感激!谢谢!
发布于 2018-11-16 00:20:44
我想出了如何获得我想要的功能,以防其他人也有这个问题。我有来自后端的数据,将日期作为YYYY-mm-dd传递,然后在角度端我使用他们的日期管道
{{value | date:'MM-DD-YYYY h:mm A'}}得到我想要的MM-DD-YYYY格式。似乎只要值以年为先,它就会正确地对其进行排序。
发布于 2020-04-29 02:49:41
这不是最好的方法,但解决这个问题的唯一方法是编写我自己的比较器。
<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; }
}
https://stackoverflow.com/questions/53321995
复制相似问题