2017-01-11 19 views
0

私は次のコードを持っている:角度フィルタ

<select name="condition" 
    ng-options="operation.id as operation.description for operation in Operators | myfilter:criterion_id" > 
</select> 

module.filter('myfilter', function() { 
    return function (x) { 
    return ????? 
    }; 
}); 

を私は、そのoperation.idcriterion_idに等しいそれらのオプションで自分の選択リストを移入します。どうすればそれを達成できますか?

答えて

1

条件に基づいて配列をフィルタリングし、フィルタされた配列を返す必要があります。

module.filter('myfilter', function() { 
    return function (arrayOptions, criterion_id) { 
    var result = []; 
    result = arrayOptions.filter(function(operation){ 
     return (operation.id == criterion_id); 
    }) 
    return result; 
    }; 
}); 

しかし、あなたがそうでなければ、角度からフィルタfilterを使用する必要があり、データ操作で複雑なフィルタリング処理の場合にこれを行う必要があります。

Operators | filter: {id: criterion_id} 
2

あなたが独自のフィルタを作成する必要はありません、角度のデフォルトfilterは動作します:

<select name="condition" 
    ng-options="operation.id as operation.description for operation in Operators | filter:{id:criterion_id}" > 
</select> 
0

私はちょうどここにいくつかのコードを書いている...それを確認してください。 http://jsfiddle.net/k86sy0ku/1/

<select 
     ng-options="p as p.first for p in people | filter:{id:FilterId}" 
     ng-model="selectedPerson"></select>