【问题标题】:AngularJS: Use array (multiple values) for a filterAngularJS:使用数组(多个值)作为过滤器
【发布时间】:2014-10-28 09:28:45
【问题描述】:

我在 angularJS 中有以下过滤器:

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

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

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

我尝试了以下操作(它不起作用):

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

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

非常感谢!

【问题讨论】:

标签: angularjs


【解决方案1】:

谓词函数将很好地满足您的需求!来自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;
}

【讨论】:

  • @Tream 哎呀,我把一切都搞糊涂了。过滤器应该看起来像过滤器:父过滤器。请接受 morloch 的回答,因为它是正确的,而我的不是。
  • 不确定,你做错了什么——对我有用。不过好吧,我接受了他的回答。谢谢你和莫洛克帮助我! :)
  • 我怎样才能做到这一点,但在集合的特定属性上
  • 你的意思是数据的属性?只需将其传递给ng-repeat,例如node in data.attr...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 2020-01-31
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多