2016-05-29 4 views
0

と最新の10に制限する私は、オブジェクトのソートされていない配列を持っている:私は日付順の10の項目の最大を表示したいNGリピート:例外

[{ name: 'Daryl', interview: Sun May 19 2016 }, { name: 'John', interview: Monday May 30 2016 }, { name: 'Jim', interview: Monday May 30 2016, cancelled: true }] 

が、オブジェクトを優先し(すなわち、 'cancelled'フラグがtrueに設定されたオブジェクトは、残りのアイテムの上に表示されます)。私はNGリピートフィルター/リミット使用している場合:私はキャンセルタグでオブジェクトを保持することができますどのように

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

を一番上に表示されますか?

+0

カスタムフィルタを使用し、そのフィルタ関数から配列を返す前に独自のソートを行う必要があります。 – charlietfl

答えて

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

@charlietfl:ありがと... ...それを変えました.... – Thalaivar

+1

私は 'unshift()'を使わないと思っていましたが、代わりに恐ろしい 'sort()'をしてしまいました。 – charlietfl