使用多个条件过滤ng-repeat

时间:2016-05-14 03:40:24

标签: javascript angularjs ng-repeat angularjs-filter

我有这个:

<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}

写这个的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

尝试以下

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

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

答案 1 :(得分:0)

来自Angular documentation

  

过滤器可以应用于另一个过滤器的结果。这称为“链接”并使用以下语法:{{expression | filter1 | filter2 | ......}}

所以,你只需要管道,它就会变成这样:

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