AngularJS:对过滤器使用数组(多个值)

时间:2014-10-28 09:28:45

标签: angularjs

我在angularJS中有以下过滤器:

<div ng-repeat="node in data | filter:{parentID:12}"></div>

这很好(我只得到数据,其中parentID是12)。

在下一步中,我想获取所有数据,其中parentID是(例如)12,13,25或30。

我试过跟随(它不能正常工作):

filter:{parentID:[12,13,25,30]}

有没有办法按照描述构建过滤器?

非常感谢!

1 个答案:

答案 0 :(得分:6)

谓词函数可以很好地满足您的需求!来自doc

function(value, index): A predicate function can be used to write arbitrary
filters. The function is called for each element of array. The final result
is an array of those elements that the predicate returned true for.

例如:

<div ng-repeat="node in data | filter:checkParentID"></div>

在您的控制器中

$scope.checkParentID = function(value, index) {
  return value.parentID && [12,13,25,30].indexOf(value.parentID) !== -1;
}