Estoy usando md-autocompletar, en ese md-items que no actualiza correctamente la lista de respuestas que se obtiene del Service Host - Ajax Call.
Código fuente HTML
<md-autocomplete flex required md-input-name="autocompleteField" md-no-cache="true" md-input-minlength="3" md-input-maxlength="18" md-selected-item="SelectedItem" md-search-text="searchText" md-items="item in querySearch(searchText)" md-item-text="item.DisplayName" Placeholder="Enter ID" style="height:38px !important;"> <md-item-template> <span class="item-title"> <span md-highlight-text="searchText" md-highlight-flags="^i"> {{item.ID}} </span> <span> - </span> <span md-highlight-text="searchText" md-highlight-flags="^i"> {{item.Description}} </span> </span> </md-item-template> </md-autocomplete>Guión AngularJS
//bind the autocomplete list when text change function querySearch(query) { var results = []; $scope.searchText = $scope.searchText.trim(); if (query.length >=3) { results = LoadAutocomplete(query); } return results; } //load the list from the service call function LoadCPTAutocomplete(id) { TestCalculatorService.searchAutocomplete(id).then(function (result) { if (result.data != null) { $scope.iList = result.data; } else { $scope.iList = []; } }); return $scope.iList; }Obtengo la lista de autocompletar del Host de servicio. Recibo la respuesta correctamente, pero no se actualiza correctamente en la interfaz de usuario.
Aquí estoy buscando 8224 pero muestra el resultado de 822 . Depuré el problema en Firebug, vea la captura de pantalla anterior que muestra, la solicitud se envió para el término de búsqueda 8224 y obtuve la respuesta de dos elementos coincidentes como un objeto JSON, que se muestra en la siguiente captura de pantalla 2
En la interfaz de usuario, muestra el resultado 82232, 82247, 82248, 82270. Pero en realidad, el retorno del servicio es 82247 y 82248.
¿Cómo actualizar la fuente del artículo en la interfaz de usuario para material angular md-autocompletar? Amablemente ayúdame.
La pregunta de apoyo se publicó en el siguiente enlace Llame manualmente a $scope.$apply error de aumento en la llamada ajax - Error: [$rootScope:inprog]
La respuesta marcada en la siguiente publicación es correcta según el requisito. Problema de $http: los valores no se pueden devolver antes de que se resuelva una promesa en md-autocomplete Angular Material
No use .success(), use .then para obtener el resultado actualizado en la interfaz de usuario...