AngularJS orderBy日期未正确排序

问题描述 投票:1回答:1

我已经在php中编写了一个函数,以获取对象列表,其中对象的添加日期为字段。我使用日期过滤器以dd-MMM-yyyy格式显示日期。由于add_date是字符串格式,因此我尝试将其转换为Date对象,但是输出仍然没有排序。有人可以帮助我了解我在这里可能会缺少什么吗?

控制器代码:

$scope.getData = function () {
  TestService.getData($scope.id).then(function (data) {
    if(data){
      $scope.testList = angular.copy(_.map(data.testArray, function (testInputs) {
        _.each(testInputs, function (testInput, key) {
          testInput.added_date = new Date(testInput.added_date);  
        });
        return testInputs;
      }));
    }
  });
};

HTML:

<tbody data-ng-repeat="(pIndex, testInputs) in testList  | orderBy: $parent.orderBy: reverse">
<td rowspan="{{testInputs.length}}" data-ng-if="($index == 0)"><b>{{testInput.added_date | date: 'dd-MMM-yyyy'}}</b></td>

输出:

19-May-2020
20-May-2020
07-Apr-2020
01-Jun-2020
04-Jun-2020

所需的输出:

07-Apr-2020
19-May-2020
20-May-2020
01-Jun-2020
04-Jun-2020

data.testArrayadded_date上分组。分组时,使用strtotime将日期转换为毫秒。看起来像这样:

{
    "institution": "ins1",
    "details": [
        [
            {
                "id": "11",
                "added_date": 1591228800000,
                "subject": "subject1",
                "grade": "A"
            }
        ],
        [
            {
                "id": "22",
                "added_date": 1590969600000,
                "subject": "subject2",
                "grade": "A"
            },
            {
                "id": "33",
                "added_date": 1590969600000,
                "subject": "subject3",
                "grade": "A+"
            },
            {
                "id": "44",
                "added_date": 1590969600000,
                "subject": "subject4",
                "grade": "B+"
            }
        ]
    ]
}

TIA!

angularjs
1个回答
0
投票

您可以尝试通过按键订购:

<body 
   data-ng-repeat="(pIndex, testInput) in testList  | orderBy: 'added_date'">

带反向添加-

<tbody data-ng-repeat="(pIndex, testInput) in testList  | orderBy: '-added_date'">

Demo

© www.soinside.com 2019 - 2024. All rights reserved.