代码之家  ›  专栏  ›  技术社区  ›  cheesydoritosandkale

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

  •  0
  • cheesydoritosandkale  · 技术社区  · 7 年前

    我正在使用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'}]">
    

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   cheesydoritosandkale    7 年前

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

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

    获取我想要的MM-DD-YYYY格式。看起来,只要值与year first一起输入,它就会正确排序。

        2
  •  0
  •   Jure Casl    6 年前

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

     <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; }
      }
    推荐文章