如何使用orderBy
过滤器来反转日期数组?我可以在模型本身上使用.sort().reverse()
,但我更愿意让角度尽可能
JS
var myApp = angular.module('myApp', []);
myApp.controller('DatesCtrl', ['$scope', function($scope) {
$scope.dates = [ new Date(2013, 0, 1), new Date(2013, 1, 1) ];
}]);
HTML
<div ng-controller="DatesCtrl">
<div ng-repeat="d in dates" ng-bind="d | date:'medium'"></div>
</div>
预期结果
2013年2月1日12:00:00 AM 2013年1月1日上午12:00:00
根据文档,我希望能够像这样做,但它不起作用
<div ng-controller="DatesCtrl">
<div ng-repeat="d in dates | orderBy:'d':true" ng-bind="d | date:'medium'"></div>
</div>
答案 0 :(得分:1)
您不能在d
中使用orderBy
,因为在应用过滤器时此变量不存在:首先过滤数组,然后才“重复”。
您必须按每个项目的实际值对数组进行排序。见this question:
$scope.identity = angular.identity;
$scope.dates = [new Date(2013, 0, 1), new Date(2013, 2, 1), new Date(2013, 1, 1)];
<div ng-repeat="d in dates | orderBy:identity:true" ng-bind="d | date:'medium'"></div>