фильтрация ng-repeat с несколькими условными

0

У меня есть это:

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

Каков правильный способ написать это?

Теги:
angularjs-filter
ng-repeat

2 ответа

0
Лучший ответ

Из Угловой документации

Фильтры могут быть применены к результату другого фильтра. Это называется "цепочкой" и использует следующий синтаксис: {{выражение | фильтр1 | фильтр2 |...}}

Итак, вы просто трубу, и это станет чем-то вроде этого:

<div id="box" ng-repeat="item in produtos | filter:categoria:busca.categoria | filter:subcategoria:busca.subcat | filter:produto:termoBusca>
  • 0
    Я сделал это, но безуспешно: <div id = "box" ng-repeat = "item in produtos | filter: {categorya: (busca.categoria? Busca.categoria: '')} | filter: {subcat: (busca .subcat? busca.subcat: '')} "> Работает только с первым каналом.
  • 0
    Извините моя ошибка. Я использовал неверный индексный подкадр: когда действительным является подкатегория. Еще раз спасибо
0

попробуйте следовать

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

параметр фильтра может быть объектом, а свойство объекта фильтра должно соответствовать свойству элемента массива объекта.

  • 0
    Я сделал это, но безуспешно: <div id = "box" ng-repeat = "item in produtos | filter: {categorya: (busca.categoria? Busca.categoria: ''), подкат: (busca.subcat? Busca .subcat: '')} ">
  • 0
    Если вы прочитаете ответ @inafalcao, вы увидите способ, который почти сработал, он приближается. С одной трубкой это сработало, как вы можете видеть в моем комментарии к ее ответу.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню