在AngularJS中,您可以通过对象属性过滤对象数组,如下所示:
var filteredItems = $filter('filter')(items, {someObjProp: someValue});
我的问题是,如何在不对'someObjProp'进行硬编码的情况下进行过滤 - 我希望这是一个变量,如:
var filteredItems = $filter('filter')(items, {arr[0].prop: someValue});
谢谢!
答案 0 :(得分:3)
提前设置对象
var obj = {};
obj[arr[0].prop] = someValue;
答案 1 :(得分:1)
传递给过滤器的第二个参数可以是函数表达式:
var filteredItems = $filter('filter')(items, function(value,index) {
//you can do whatever you want in here with your
//object (value), just return true or false to fail or pass the filter
return (value.arr[0].prop === someValue);
});
只需为通过过滤器的所有对象返回true
,并为过滤掉的对象返回false
。