我有一个未排序的对象数组:
[{ name: 'Daryl', interview: Sun May 19 2016 }, { name: 'John', interview: Monday May 30 2016 }, { name: 'Jim', interview: Monday May 30 2016, cancelled: true }]
我想显示最多十个项目,按日期排序,但优先考虑具有特定属性的对象(即,任何“已取消”标志设置为true的对象将出现在其余项目的上方)。如果我使用ng-repeat过滤器/限制:
<div ng-repeat="people in peoples | limitTo: 10 | orderBy: '-interview'">
如何将取消标记的对象保留在顶部?
答案 0 :(得分:1)
<div ng-repeat="people in peoples |
limitTo: 10 | orderBy: '-interview' | filter:customFilter">
您的custom filter
如下所示。
app.filter('customFilter', function() {
return function( items ) {
var filtered = [];
angular.forEach(items, function(item) {
if(item.hasOwnProperty("cancelled") && item.cancelled === true)
filtered.unshift(item);
else
filtered.push(item);
});
return filtered;
};
});