javascript - ng-重复 : Limit to 10 most recent with exceptions

标签 javascript angularjs

我有一个未排序的对象数组:

[{ 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'">

如何让已取消标签的对象保留在顶部?

最佳答案

<div ng-repeat="people in peoples | 
                limitTo: 10 | orderBy: '-interview' | filter:customFilter">

您的自定义过滤器如下。

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;
    };
});

关于javascript - ng-重复 : Limit to 10 most recent with exceptions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37514871/

相关文章:

javascript - 保存和恢复 "brush & zoom"? (程序缩放)

javascript - 使用javascript函数检索隐藏文本值对象HTMLinputElement错误

angularjs - 在 AngularJS 中处理来自子模块的依赖关系

javascript - 如何检查 AngularJS 模板 HTML 中的数字

javascript - 如何动态创建多个 setInterval() ?

javascript - 删除 Javascript/JQuery 中第一组引号之外的所有内容

c# - c#中的toFixed函数

javascript - 对对象数组中的对象使用 ng-options

javascript - 好奇 angularJs 是否有更好的方法来计算复选框的数量

angularjs - Angular js Div 仅显示 3 秒