J'ai un composant angea ui-boostrap typeahead qui fonctionne correctement jusqu'à ce que j'ajoute une exigence à la fonction entière. Je veux appeler le backend pour les résultats suggérés juste après que l'utilisateur tape en 3 lettres. C'est fait correctement mais mon problème est que les résultats ne sont visibles que lorsque les utilisateurs tapent la 4ème lettre. Est-il possible de contourner cela, en le forçant à actualiser l'interface utilisateur juste après que l'utilisateur tape dans la 3ème lettre. Code de est:Bootstrap angulaire Typeahead dropdown
HTLM
<input name="states" id="states" type="text" ng-model="vm.cityName"
uib-typeahead="municipality as municipality.city + ' (' + municipality.name + ') '+municipality.zipCode for municipality in vm.getMunicipalitiesByCity($viewValue) | filter:$viewValue | limitTo:8" class="form-control" typeahead-on-select="vm.citySelected()" >
JS Controller
vm.getMunicipalitiesByCity = function (cityName) {
if (cityName != undefined && cityName.length == 3) {
CalculationEndpointService.municipalitiesByCity({cityName: cityName}, function (result) {
vm.municipalities = result.map(
function (item) {
return item;
}
);
});
}
if(cityName.length<3){
vm.municipalities=[""];
}
return vm.municipalities;
};
Merci pour la réponse, le problème est plus dans la structure AngualrJS, j'ai besoin de forcer le $ digérer de cette variable afin de le voir instantanément –