2015-03-23 25 views
5

Non riesco a ottenere il filtro: $ viewValue funziona in un input con typeahead. Ricevo l'intera lista visualizzata con i caratteri inseriti evidenziati. Mi aspetto una lista filtrata in base ai caratteri inseriti.

Ecco un plunker: http://plnkr.co/edit/X3C0fP52ZTi55LJtXfnu?p=preview

Nel mio vero e proprio progetto, ho bisogno di applicare due filtri, come di seguito.

<input autocomplete="off" type="text" placeholder="Selected Criteria"  ng-model="MgtCtrl.editActionData.selectedCriteria" typeahead='criteria as criteria.name for criteria in MgtCtrl.criteriaList | criteriaByApplication:MgtCtrl.getTriggerApplication() | filter:$viewValue | orderBy:"name"'> 

Qualcuno potrebbe aiutarmi?

Saluti, Agnes.

+1

Al momento non ci sono un paio di biglietti aperti per quanto riguarda il typeahead con angolare 1.3. Potresti voler controllare la loro bacheca: https://github.com/angular-ui/bootstrap/milestones/0.13.0 –

risposta

14

Se l'elemento della raccolta è un oggetto, è necessario specificare la proprietà che il filtro deve prendere in considerazione.

Secondo il vostro esempio, il filtro sarà simile a questa:

| filter:{'name':$viewValue} 

Dal momento che si sta visualizzando la proprietà nome, può essere il nome che si desidera filtrare, ma potrei sbagliarmi. Quindi devi adeguarlo al tuo contesto.

Riferimenti: https://docs.angularjs.org/api/ng/filter/filter