如何在字典上使用AngularJS搜索过滤器?

时间:2014-04-23 20:08:50

标签: javascript angularjs filter

如果我有一个清单:

items = [
 {
  name: name1
  value: value1
 },
 {
  name: name2
  value: value2
 }
]

以下HTML工作正常:

<input ng-model='search_field'/>
<span ng-repeat='item in items | search_field>[[item]]</span>

但是如果items是这样的字典,我怎么能使用这个功能:

items = {
   name1 : value1,
   name1 : value2
}

我想使用字典表示,因为我将要执行的操作更容易。

1 个答案:

答案 0 :(得分:1)

angular.module('filters',[])
  .filter('objFilter', function($filter){

    return function(input, query){
      if(!query) return input;
      var result = [];

      angular.forEach(input, function(v,k){
          result.push(v);          
      });

      var refined = $filter('filter')(result,query);

      return refined;
    };
  });

 <span ng-repeat='item in items | objFilter:query'></span>