У меня есть это:
<div id="box" ng-repeat="item in produtos | filter:{categoria:busca.categoria,subcategoria:busca.subcat,produto:termoBusca}">
Я тестировал его с условием и FINE, он работал:
filter:{busca.categoria?categoria:busca.categoria}
Теперь мне нужно иметь более одного условного, что-то вроде этого:
filter:{busca.categoria?categoria:busca.categoria} && {busca.subcat?subcategoria:busca.subcat}
Каков правильный способ написать это?
Из Угловой документации
Фильтры могут быть применены к результату другого фильтра. Это называется "цепочкой" и использует следующий синтаксис: {{выражение | фильтр1 | фильтр2 |...}}
Итак, вы просто трубу, и это станет чем-то вроде этого:
<div id="box" ng-repeat="item in produtos | filter:categoria:busca.categoria | filter:subcategoria:busca.subcat | filter:produto:termoBusca>
попробуйте следовать
filter:{categoria:(busca.categoria?categoria:busca.categoria) ,subcat: (busca.subcat?subcategoria:busca.subcat)}
параметр фильтра может быть объектом, а свойство объекта фильтра должно соответствовать свойству элемента массива объекта.