Tôi đang sử dụng nhómBởi từ angular-filter để nhóm một mảng đối tượng theo thuộc tính ngày của chúng.Nhóm angularjsBy + orderBy
<div ng-repeat="(day, dayEvents) in events | groupBy: 'date')">
<h3>{{ day | date: mediumDate }}</h3>
</div>
nào sản xuất như sau:
Feb 9, 2015
Feb 10, 2015
Feb 11, 2015
Feb 12, 2015
Làm thế nào tôi có thể đảo ngược thứ tự bắt đầu từ ngày gần đây nhất? Khi tôi in ra cửa sổ Console mảng được in với thứ tự tôi muốn:
Object {
1423699200000: Array[1],
1423612800000: Array[7],
1423526400000: Array[11],
1423440000000: Array[1]
}
Tôi cũng đã viết một bộ lọc tùy chỉnh để đảo ngược thứ tự sau 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;
}
})
Mà tôi đã áp dụng như này:
<div ng-repeat="(day, dayEvents) in events | groupBy: 'date' | reverseOrder)">
<h3>{{ day | date: mediumDate }}</h3>
</div>
Vẫn như cũ, có vẻ như bộ lọc hoàn nguyên không có bất kỳ ảnh hưởng nào về cách hiển thị các mục. – Shakur