СИТУАЦИЯ:
У меня есть приложение angular, используя angular ui-select для поиска и выбора людей из базы данных.
Он работает нормально, кроме одного. Пользователь должен иметь возможность фильтровать среди людей, используя два критерия: имя и адрес электронной почты.
Используя обычный фильтр angular, я могу фильтровать только один из них.
Если я попытаюсь отфильтровать оба поля, это больше не работает.
РАБОЧИЙ ПРИМЕР С ОДНИМ ПОЛЕ:
<ui-select multiple ng-model="database_people.selectedPeople" theme="select2" ng-disabled="disabled" style="width:100%">
<ui-select-match placeholder="Select person...">{{$item.name}} < {{$item.email}} ></ui-select-match>
<ui-select-choices repeat="person2 in list_people | filter: {name: $select.search, db_data_type_id: 5}">
<div ng-bind-html="person2.name | highlight: $select.search"></div>
<small>
email: <span ng-bind-html="''+person2.email | highlight: $select.search"></span>
</small>
</ui-select-choices>
</ui-select>
НЕ РАБОЧИЙ ПРИМЕР С ДВУМ ПОЛЯМИ ФИЛЬТРА:
<ui-select multiple ng-model="database_people.selectedPeople" theme="select2" ng-disabled="disabled" style="width:100%">
<ui-select-match placeholder="Select person...">{{$item.name}} < {{$item.email}} ></ui-select-match>
<ui-select-choices repeat="person2 in list_people | filter: {name: $select.search, email: $select.search, db_data_type_id: 5}">
<div ng-bind-html="person2.name | highlight: $select.search"></div>
<small>
email: <span ng-bind-html="''+person2.email | highlight: $select.search"></span>
</small>
</ui-select-choices>
</ui-select>
Странно то, что он действительно работает, но только для первого персонажа. Когда я набираю первый символ, он выделяет его в обоих полях, имени и электронной почте. Но когда я набираю второго символа, он больше не работает (В консоли не было ошибок).
ATTEMP ИСПОЛЬЗОВАНИЕ PROPSFILTER FROM angular ОБРАЗЦЫ:
<ui-select multiple ng-model="database_people.selectedPeople" theme="select2" ng-disabled="disabled" style="width:100%">
<ui-select-match placeholder="Select person...">{{$item.name}} < {{$item.email}} ></ui-select-match>
<ui-select-choices repeat="person2 in list_people | propsFilter: {name: $select.search, email: $select.search, db_data_type_id: 5}">
<div ng-bind-html="person2.name | highlight: $select.search"></div>
<small>
email: <span ng-bind-html="''+person2.email | highlight: $select.search"></span>
</small>
</ui-select-choices>
</ui-select>
В этом случае он полностью сломался, больше нет данных в select2, и я получаю некоторые ошибки в консоли:
Cannot read property 'toString' of null
Cannot read property 'length' of undefined
ВОПРОС (S):
Как фильтровать между полями mulitple? Могу ли я это сделать с помощью обычного фильтра? Или я должен использовать собственный фильтр? Но в этом случае почему не работает должным образом?
Большое спасибо!