使用多个条件过滤 ng-repeat

filtering ng-repeat with more than one conditional

我有这个:

<div id="box" ng-repeat="item in produtos | filter:{categoria:busca.categoria,subcategoria:busca.subcat,produto:termoBusca}">

我已经在一定条件下测试过它并且很好,它有效:

filter:{busca.categoria?categoria:busca.categoria}

现在我需要的是不止一个条件,像这样:

filter:{busca.categoria?categoria:busca.categoria} && {busca.subcat?subcategoria:busca.subcat}

正确的写法是什么?

尝试关注

filter:{categoria:(busca.categoria?categoria:busca.categoria) ,subcat: (busca.subcat?subcategoria:busca.subcat)}

过滤器参数可以是一个对象,过滤器对象的属性必须与对象数组的项属性匹配。

来自Angulardocumentation

Filters can be applied to the result of another filter. This is called "chaining" and uses the following syntax: {{ expression | filter1 | filter2 | ... }}

所以,你管一下,就会变成这样:

<div id="box" ng-repeat="item in produtos | filter:categoria:busca.categoria | filter:subcategoria:busca.subcat | filter:produto:termoBusca>