Si consideri il seguente nel corpo del mio file html
:Aggiornamento del modello da un typeahead-on-select
<html>
...
<body>
...
<div class='container-fluid' ng-controller="TypeaheadCtrl">
<input type="text" ng-model="selected" typeahead="name as entry.name for entry in entries | filter:{name: $viewValue} | limitTo:8"
typeahead-on-select='onSelect($item, $model, $label)'
class="form-control">
{{selection_made}}
</div>
<body>
</html>
dove entries
sono popolate da qualche altra parte. E poi questo nel controller:
angular.module('ui.bootstrap.demo').controller('TypeaheadCtrl', function($scope, $http) {
...
$scope.onSelect = function ($item, $model, $label) {
$scope.$selection_made = $item;
};
...
});
Ho il completamento automatico che funziona, ma il callback di selezione non sembra funzionare bene. Mi aspettavo che {{selection_made}}
visualizzasse tutto ciò che è selezionato, ma viene invece visualizzato il testo letterale {{selection_made}}
. Perché? Cosa mi manca?
Nota: ho utilizzato this answer come riferimento.
Grazie @Satpal, sì, ho provato che senza fortuna (ho la stessa cosa) –
Se si mette un debugger di sopra del scope.selection_made = $ voce $; linea e si ispeziona l'articolo, il modello e l'etichetta. Contengono le informazioni che ti aspetti? – KreepN
@KreepN Sì, ho appena controllato e lo fa. Tranne il modello, che sembra essere "indefinito". –