AngularJS按变量对象属性过滤

时间:2015-04-17 18:10:34

标签: angularjs angularjs-filter

在AngularJS中,您可以通过对象属性过滤对象数组,如下所示:

var filteredItems = $filter('filter')(items, {someObjProp: someValue});

我的问题是,如何在不对'someObjProp'进行硬编码的情况下进行过滤 - 我希望这是一个变量,如:

var filteredItems = $filter('filter')(items, {arr[0].prop: someValue});

谢谢!

2 个答案:

答案 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

参考: https://docs.angularjs.org/api/ng/filter/filter