0

找不到任何与我的问题相匹配的现有问题...

OrderBy 不适合我;我归结为以下示例代码:

控制器:

'use strict';

angular.module('angularSampleApp')
.controller('MainCtrl', function($scope) {

    $scope.products = [{
        product_summary: {
            purchase_id: 225,
            purchase_date: '2014-09-05T08:58:59+10:00',
            title: 'Product 1',
        }
    }, {
        product_summary: {
            purchase_id: 226,
            purchase_date: '2014-09-05T11:34:28+10:00',
            title: 'Product 2',
        }
    }];

    $scope.purchaseDate = function(product) {
      return Date.parse(product.product_summary.purchase_date);
    }

});

并查看:

<ul>
  <li ng-repeat="product in products | orderBy:purchaseDate">
  {{product.product_summary.title}} : {{product.product_summary.purchase_date}}
</ul>

<ul>
  <li ng-repeat="product in products | orderBy:purchaseDate:reverse">
  {{product.product_summary.title}} : {{product.product_summary.purchase_date}}
</ul>

两个列表的顺序相同。

据我所见,我做事正确 - purchaseDate 函数返回 Date.parse 输出,它是一个 int,据我所见,这应该可以工作......

谁能看到我做错了什么?

4

2 回答 2

1

reverse (可选) boolean 反转数组的顺序。

https://docs.angularjs.org/api/ng/filter/orderBy

reverse是一个变量,它需要设置为 true 或 false。如果你使用一个未定义的变量,它是“假的”,所以它的行为就像你没有告诉它反转一样。添加$scope.reverse = true,它会工作。

编辑:实际上,您可能需要这样做:

orderBy:'productSummary.purchaseDate':reverse 

也可以通过购买日期订购

于 2014-09-08T23:42:00.347 回答
0

好的,我刚刚意识到 orderBy 的第二个参数不是'reverse',它是 true 反转,false 不是反转。

应该正确阅读文档....

于 2014-09-08T23:45:40.530 回答