Ho notato che l'interfaccia utente di Angular ha interrotto la direttiva UI-Select2 a favore della nuova UI-Select (con più temi - select2, bootstrap, selectize).Come faccio a guardare la nuova stringa di ricerca di ui-select (ex ui-select2) di Angular-ui?
Ecco come si presenta:
<ui-select multiple ng-model="multipleDemo.colors" theme="select2" ng-disabled="disabled" style="width: 300px;">
<ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match>
<ui-select-choices repeat="color in availableColors | filter:$select.search">
{{color}}
</ui-select-choices>
</ui-select>
<p>Selected: {{multipleDemo.colors}}</p>
Inizialmente la mia selectbox si suppone che sia vuoto, ma pronti a prendere i caratteri digitati, vale a dire una serie di almeno 4 caratteri e quindi effettuare una chiamata API per recuperare un elenco dei valori suggeriti che devono compilare la scatola. Sarà quindi scelto un valore e la ricerca dovrebbe essere ripetuta secondo necessità.
Prima ho provato $watch
il ng-model
che in questo caso è multipleDemo.colors
(utilizzando questo esempio dalle demo). La chiamata API non si è mai verificata e quindi ho capito perché. Il modello attuale non viene affatto modificato perché cambia solo quando viene effettuata una selezione (la mia selectbox è vuota, quindi nulla può essere selezionato).
La mia conclusione è che dovrei (essere in grado di) $watch
cosa è stato aggiunto come filtro, ovvero filter: $select.search
.
Qualcuno sa come dovrei usare quello nel mio controller?
questo:
$scope.$watch('$select.search', function(newVal){
alert(newVal);
});
non funziona.
EDIT: Per riferimento di nessuno, si veda questo breve discussione: Is it possible to add support for custom query function like the select2?
EDIT 2:
ho risolto questo utilizzando $emit
dall'interno della direttiva in modo che il valore è disponibile nel mio controller ora. Ma ora mi piacerebbe sapere come posso sovrascrivere questa parte della direttiva in modo che la direttiva stessa possa essere lasciata intatta, in modo che non si rompa nei futuri aggiornamenti?
La prossima volta che esegui "bower update ui-select" vieni qui e deseleziona questo come risposta. btw, hai controllato la risposta di Chris Bond? –