あなたはいつもパイプフィルターなので、これを試してみることができます。
<ion-item collection-repeat="item in data | unique:{'brand'} | unique:{'model'}"></ion-item>
第1のフィルタは、第1の配列を受け取り、適用されるフィルタの配列を出力します。 2番目のフィルタは最初のフィルタの出力を使用し、同じ処理を行います。結果は両方のフィルターが適用された配列です。
EDIT:
app.filter('filterObj', filterObj);
function filterObj() {
return function(collection, properties) {
var trace = [];
angular.forEach(collection, function(item) {
for (var i = 0; i < trace.length; i++) {
if (equalsPartial(item, trace[i], properties))
return;
}
trace.push(item);
});
return trace;
}
function equalsPartial(item,traceItem,properties){
for (var j = 0; j < properties.length; j++) {
if (item[properties[j]] !== traceItem[properties[j]])
return false;
}
return true;
}
}
そして、あなたはそれを使用します: は、あなたはこの1つのようなカスタムフィルタを使用することができますユニークな組み合わせを取得して達成するために
<ion-item collection-repeat="item in data | filterObj: ['brand','model']"></ion-item>
フィルタがに項目を追加します新しい配列は、新しい配列にすでに同じプロパティを共有する項目が含まれているかどうかを確認した後、何もしない場合はそれを追加し、それ以外の場合は追加します。 equalsPartial関数を使用して別のフィルタに入れることもできます。
CodePen
[OK]を感謝し、多分私は十分に明確ではありませんでした:私は唯一のユニークなペアブランド/モデルを取得するためにフィルタリングする必要があります...私はこのカスタム関数は、のために働くように思われる質問 – Louis
グレートを編集しています私、ありがとうたくさん – Louis
素晴らしい!どういたしまして! – Hiraqui