角度滤镜

时间:2017-01-11 13:21:26

标签: angularjs angularjs-filter

我有以下代码:

<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.id 等于 criterion_id的选项填充我的选择列表。我怎么能实现这个目标呢?

3 个答案:

答案 0 :(得分:2)

您无需制作自己的过滤器,Angular的默认filter将起作用:

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

答案 1 :(得分:1)

您应该根据条件过滤数组并返回已过滤的数组。

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

但是如果使用数据操作的复杂过滤过程,你应该这样做,否则你应该使用Angular中的过滤器filter

Operators  | filter: {id: criterion_id}

答案 2 :(得分:0)

我刚刚在这里写了一些代码..请检查一下: http://jsfiddle.net/k86sy0ku/1/

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