我一直在尝试使用Angular过滤数组:
{{ (array | filter: { property: { subproperty: 'value' } }).length }}
并且效果很好。
然后我尝试了:
{{ (array | filter: { property: { subproperty1: 'value1', subproperty2: 'value2' } }).length }}
并注意到Angular将此解释为2个子属性的OR操作。
如何将2个或更多子属性过滤为AND操作?
谢谢!
答案 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 }}
P.S。 - 我还试图弄清楚为什么你的代码充当OR运算符,但它对我来说从来没有用过。 non-functional fiddle
干杯!