如何在Javascript/Angular{}中按日期排序

如何在Javascript/Angular{}中按日期排序,javascript,html,angularjs,Javascript,Html,Angularjs,假设我有一段代码: <tr ng-repeat-start="caseHistory in vm.caseHistory"> <td >{{caseHistory.date | date:"dd-MMM-yyyy h:mm a"}}</td> <td >{{caseHistory.description}}</td> <td >{{caseHistor

假设我有一段代码:

<tr  ng-repeat-start="caseHistory in vm.caseHistory">
            <td >{{caseHistory.date | date:"dd-MMM-yyyy h:mm a"}}</td>
            <td >{{caseHistory.description}}</td>
            <td >{{caseHistory.performedByUser.firstName}} {{caseHistory.performedByUser.lastName}} ({{caseHistory.performedByUser.externalAssociateId}})</td>
            <td>
                <span ng-show="vm.showCreateCaseComments(caseHistory.eventType,caseHistory.comments)">
                    <a ng-if="caseHistory.expanded" class="removeTextDecoration headerPointer" ng-click="caseHistory.expanded = false"> -Collapse</a>
                    <a ng-if="!caseHistory.expanded" class="removeTextDecoration headerPointer" ng-click="caseHistory.expanded = true"> +Expand</a>
                </span>
            </td>
        </tr>

{{caseHistory.date}日期:“dd-MMM-yyyy h:mm-a”}
{{caseHistory.description}
{{caseHistory.performedByUser.firstName}{{caseHistory.performedByUser.lastName}}({{caseHistory.performedByUser.externalAssociateId}})
-崩溃
+扩展
我希望所有显示的内容都能按照升序的时间顺序进行排序


我需要在
{{caseHistory.date | date:“dd MMM yyyy h:mm a”}
中添加什么才能按日期对所有结果进行排序?

您需要在此处添加管道:

<tr  ng-repeat-start="caseHistory in vm.caseHistory | orderBy:'caseHistory.date'">

您还可以添加“-”符号来指定升序与降序

文档可在此处找到:

使用
orderBy
过滤器并添加降序的反向选项

<tr  ng-repeat-start="caseHistory in vm.caseHistory | orderBy: 'date':true">
根据官方教程,管道或过滤器不应用于分拣目的

您可以编写自定义方法来执行此任务,如:

Main.prototype = {

sort: function(item) {
    if (this.predicate == 'date') {
        return new Date(item.date);
    }
    return item[this.predicate];
},

sortBy: function(field) {
    if (this.predicate != field) {
        this.predicate = field;
        this.reverse = false;
    } else {
        this.reverse = !this.reverse;
    }
},

reverse: false};
请参考以下内容

Main.prototype = {

sort: function(item) {
    if (this.predicate == 'date') {
        return new Date(item.date);
    }
    return item[this.predicate];
},

sortBy: function(field) {
    if (this.predicate != field) {
        this.predicate = field;
        this.reverse = false;
    } else {
        this.reverse = !this.reverse;
    }
},

reverse: false};