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>