AngularJS - 无法使用 ngRepeat orderBy 对 DateTime 进行排序

AngularJS - Can't sorted DateTime with ngRepeat orderBy

在 SO (post1, post2, post3 ...) 上阅读了大量 post 和谷歌搜索后,我仍然无法弄清楚如何在我的 ng-repeat 中对日期时间进行排序。

这是我所做的:

我的 ng-repeat index.html :

<div ng-repeat="oneItem in groupesItems.ITEMS | orderBy:'-myDate'" class="item">
                                        ...
 <div class="course-date">{[{oneItem.myDate | date:'dd MMMM yyyy hh : mm'}]}</div>
                                        ...
</div>

我还读到我必须将 myDate 转换为 Date 对象,因为 Angular 将其视为字符串。所以在我的 angular 控制器中,这就是我所做的:

($scope.groupesItems.ITEMS).forEach(function(data){
        data.myDate = new Date(data.myDate);
    });

但没有任何效果!

请帮忙!我忽略了什么?

尝试通过 getTime 方法使用一些 temp 变量:

<div ng-repeat="oneItem in groupesItems.ITEMS | orderBy:'-temp'" class="item">
    <div class="course-date">{[{oneItem.myDate | date:'dd MMMM yyyy hh : mm'}]}</div>
</div>

Javascript:

($scope.groupesItems.ITEMS).forEach(function(data){
     data.temp = new Date(data.myDate).getTime();
});

你也可以试试 reverse(true after orderBy:'myDate':) 不改变 javascript part:

<div ng-repeat="oneItem in groupesItems.ITEMS | orderBy:'myDate':true" class="item">
    <div class="course-date">{[{oneItem.myDate | date:'dd MMMM yyyy hh : mm'}]}</div>
</div>