LA SITUAZIONE:angolare ui-seleziona il filtro in un solo campo
Ho un app angolare utilizzando angular ui-select per cercare e selezionare le persone da un database.
Sta funzionando bene, tranne una cosa. L'utente dovrebbe essere in grado di filtrare tra le persone utilizzando due criteri: nome ed e-mail.
Utilizzando il normale filtro angolare sono in grado di filtrarne solo uno. Se provo a filtrare entrambi i campi, non funziona più.
LAVORARE ESEMPIO CON UN CAMPO:
<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>
Non funziona ESEMPIO CON DUE CAMPI NEL FILTRO:
<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>
La cosa strana è che funziona in realtà MA solo per il primo personaggio. Quando digito il primo carattere lo evidenzia in entrambi i campi, nome e indirizzo email. Ma quando digito il secondo carattere non funziona più (Non ho ricevuto errori nella console).
attemp UTILIZZO PROPSFILTER DA 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 questo caso si è rotto completamente, non ci sono dati più nel select2 ed ottengo alcuni errori nella console:
Cannot read property 'toString' of null
Cannot read property 'length' of undefined
LA QUESTIONE (S):
Come faccio a filtrare tra i campi mulitple? Posso farlo usando il filtro normale? Oppure devo usare un filtro personalizzato? Ma in questo caso, perché non funziona correttamente?
Grazie mille!
@hanu Solo chiedendosi, hai implementato la funzione javascript personalizzata per propsFilter? Non funzionerà da solo ([vedi riga 83] (http://plnkr.co/edit/5pWPKGSQfGejuEflDNuF?p=preview)). Non ho ancora provato a utilizzarlo, ma sembra che molte persone non sappiano che devono includere il codice javascript. – DaaaahWhoosh
Sì, deve essere inclusa la direttiva. Grazie per segnalarlo. – johnnyfittizio