Angularjs groupBy + orderBy

Sha*_*kur 10 javascript angularjs angularjs-filter

我正在使用angular-filter中的 groupBy来按日期属性对对象数组进行分组.

<div ng-repeat="(day, dayEvents) in events | groupBy: 'date' )">
 <h3>{{ day | date: mediumDate }}</h3>
</div>
Run Code Online (Sandbox Code Playgroud)

产生以下内容:

Feb 9, 2015 
Feb 10, 2015 
Feb 11, 2015 
Feb 12, 2015 
Run Code Online (Sandbox Code Playgroud)

如何从最近的日期开始撤销订单?当我打印到控制台时,阵列打印出我想要的顺序:

  Object {
     1423699200000: Array[1],
     1423612800000: Array[7],
     1423526400000: Array[11],
     1423440000000: Array[1]
 }
Run Code Online (Sandbox Code Playgroud)

我还写了一个自定义过滤器来反转groupBy之后的顺序:

.filter("reverseOrder", function() {
        function sortNumber(a,b) {
            return  parseInt(b) - parseInt(a);
        }
        return function(collection) {
            var keys = Object.keys(collection).sort(sortNumber);
            var reveredCollection= {};
            var length=collection.length;
            angular.forEach(keys, function(key) {
                reveredCollection[key] = collection[key];
            });
           return reveredCollection;
        }
    })
Run Code Online (Sandbox Code Playgroud)

我申请了这样的:

<div ng-repeat="(day, dayEvents) in events | groupBy: 'date' | reverseOrder )">
     <h3>{{ day | date: mediumDate }}</h3>
</div>
Run Code Online (Sandbox Code Playgroud)

aro*_*uby 19

最近有同样的问题.groupBy创建一个对象,但orderBy需要一个数组,所以有一点点的funkiness涉及.我最终直接从他们的问题页面得到了答案,其中一位作者非常出色地解释了它,完整的代码示例基本上是我的复制/粘贴.

https://github.com/a8m/angular-filter/issues/57#issuecomment-65041792