Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在字典上使用AngularJS搜索过滤器?_Javascript_Angularjs_Filter - Fatal编程技术网

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

Javascript 如何在字典上使用AngularJS搜索过滤器?,javascript,angularjs,filter,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 = [
 {
  name: name1
  value: value1
 },
 {
  name: name2
  value: value2
 }
]
以下HTML可以完美地工作:

<input ng-model='search_field'/>
<span ng-repeat='item in items | search_field>[[item]]</span>
我想使用字典表示法,因为它对于我将要执行的操作要容易得多。

angular.module('filters',[])
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>
.filter('objFilter',函数($filter){ 返回函数(输入、查询){ 如果(!query)返回输入; var结果=[]; 角度forEach(输入,函数(v,k){ 结果:推(v); }); var精炼=$filter('filter')(结果,查询); 回归精炼; }; });
是的!但对于字典,应该使用angular.forEach()接收的第二个参数。
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>