THE SITUATION:
I have an angular app using angular ui-select to search and select people from a database.
It is working fine, except one thing.
The user should be able to filter among the people using two criteria: name and email.
Using the normal angular filter I am able to filter only one of them.
If I try to filter both fields, it does not work anymore.
WORKING EXAMPLE WITH ONE FIELD:
<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>
NOT WORKING EXAMPLE WITH TWO FIELDS IN THE FILTER:
<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>
The strange thing is that it actually works BUT only for the first character.
When I type the first character it highlights it in both fields, name and email.
But when I type the second character it does not work anymore
(I got no error in console).
ATTEMP USING PROPSFILTER FROM ANGULAR SAMPLES:
<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>
In this case it broke completely, there is no data anymore in the select2 and I get some errors in the console:
Cannot read property 'toString' of null
Cannot read property 'length' of undefined
THE QUESTION(S):
How can I filter among mulitple fields?
Can I do that using normal filter?
Or I have to use a custom filter?
But in this case, why is not working properly?
Thank you very much!