表达式可以是属性到过滤器的映射: http://docs.angularjs.org/api/ng/filter/filter其中对象中的每个属性都映射到结果集中的相应属性。
$filter('filter')(employees, {name:"Joe"});
现场演示 http://jsfiddle.net/jwcarroll/VfEcp/
使用自定义函数
如果您的数据比较复杂,并且需要更高级的过滤,那么您可以简单地传入自定义谓词函数来评估是否应该过滤某个项目。
函数的输入将数组的每一项作为参数,并预计返回false
是否应从结果集中排除该项目。
var people = [{date:new Date(), details:{
name: 'Josh',
age: 32
}}, {date:new Date(), details:{
name: 'Jonny',
age: 34
}}, {date:new Date(), details:{
name: 'Blake',
age: 28
}}, {date:new Date(), details:{
name: 'David',
age: 35
}}];
$scope.filteredPeople = $filter('filter')(people, function(person){
return /^Jo.*/g.test(person.details.name);
});
现场演示 http://jsfiddle.net/jwcarroll/Fgxyu/