0

你如何使用orderBy过滤器来反转日期数组?我可以.sort().reverse()在模型本身上使用,但如果可能的话,我宁愿让 angular 来做

http://jsfiddle.net/V6aZH/2/

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 AM

根据文档,我希望能够这样做,但它没有用

<div ng-controller="DatesCtrl">
    <div ng-repeat="d in dates | orderBy:'d':true" ng-bind="d | date:'medium'"></div>
</div>
4

1 回答 1

1

您不能使用din orderBy,因为在应用过滤器时此变量不存在:数组首先被过滤,然后才“重复”。

您必须按每个项目的实际值对数组进行排序。看到这个问题

$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>

Fiddle

于 2013-10-21T17:05:30.287 回答