md-items неправильно обновляет список предложений в md-autocomplete Angular Material.
Я использую md-autocomplete, в тех md-элементах, которые не обновляют список ответов должным образом, полученный от Service Host - Ajax Call.
Исходный код 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>
Скрипт 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;
}
Я получаю список автозаполнения от узла службы. Я получаю ответ правильно, но он не обновляется в пользовательском интерфейсе должным образом.
Здесь я ищу8224 но это показывает результат для822, Я отладил проблему в Firebug, см. Скриншот, который он показывает, запрос был отправлен по запросу8224 и я получил ответ двух совпадающих элементов в виде объекта JSON, который показан на приведенном ниже снимке экрана 2
В пользовательском интерфейсе он показывает результат 82232, 82247, 82248, 82270. Но на самом деле возврат службы - 82247 и 82248.
Как обновить Item-source в пользовательском интерфейсе для Angular Material md-autocomplete? Пожалуйста, помогите мне.
Вопрос поддержки был размещен по следующей ссылкеВручную вызовите $ scope. $ Apply повысить ошибку при вызове ajax - Ошибка: [$ rootScope: inprog]