Это мои данные JSON:
[
{
"name": "elin",
"family": "kinoian"
},
{
"name": "simon",
"family": "santos"
},
{
"name": "sara",
"family": "pinki"
},
{
"name": "emin",
"family": "richard"
}
]
Как вы можете видеть, у меня есть 2 ключа в каждой строке » Имя » и «семья«.
Это моя фильтрация ng-repeat по объекту json » search«:
<li ng-repeat="membr in familyMember| filter:search">
<span> {{membr.name}} - {{membr.family}}</span>
</li>
И это мои входные данные для фильтрации:
By name: <input type="text" ng-model="search.name1">
and <input type="text" ng-model="search.name2">
By family: <input type="text" ng-model="search.family">
Мне нужны строки, которые называются » Элин «и » Сара«. Я ищу «и условие» в фильтрации. Как я могу это сделать?
Во-первых, нет, вы ищете не условие AND, а условие OR. Действительно, член семьи не может быть назван «Элин» и «Сара» одновременно.
Теперь, если Вы читаете документацию для
filter
фильтра, вы увидите, что он принимает функцию в качестве аргумента, который должен возвращать значение истинности, если значение принято, и значение истинности, если оно отклонено. Так что все, что вам нужно, этои
Необходимо использовать пользовательский фильтр с условием или.
ДЕМОНСТРАЦИЯ
Попробуйте эту рабочую демонстрацию :