AngularJs - 作为AND操作的子属性过滤

时间:2014-07-09 18:19:36

标签: angularjs angularjs-filter

我一直在尝试使用Angular过滤数组:

{{ (array | filter: { property: { subproperty: 'value' } }).length }}

并且效果很好。

然后我尝试了:

{{ (array | filter: { property: { subproperty1: 'value1', subproperty2: 'value2' } }).length }}

并注意到Angular将此解释为2个子属性的OR操作。

如何将2个或更多子属性过滤为AND操作?

谢谢!

1 个答案:

答案 0 :(得分:0)

您尝试做什么基本上将additional filter添加到当前版本。尝试使用以下内容,它应该用作AND过滤器。

 {{ (array | filter: { property: { subproperty1: 'value1'}} 
           | filter: { property: { subproperty2: 'value2'}}).length }}

- 编辑 -

根据angularjs docs:

  

模式对象可用于过滤包含的对象的特定属性    通过数组。例如{name:“M”,phone:“1”}谓词将返回一个项目数组,其属性名称包含“M” AND 属性手机,其中包含“1” ”

我根据文档中的指针准备了以下过滤器(参数),它对我来说非常适合。

{{ (array | filter: { property.subproperty1 : 'value1',
                      property.subproperty2 : 'value2' }).length }}

functional fiddle

P.S。 - 我还试图弄清楚为什么你的代码充当OR运算符,但它对我来说从来没有用过。 non-functional fiddle

干杯!