如何在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};