Я использую typeahead, где при вводе его отображающих предложений в окне поиска, пока предложения поступают с сервера.Typeahead не работает, когда пользователь набирает очень быстро
Его рабочий тон, за исключением случаев, когда пользовательские типы очень быстрые. Например, если мы набираем шторм, он показывает записи. Когда печатайте то же слово со скоростью, он не показывает свои предложения, пока я получаю данные в ответ. Я проверил, напечатав JSON чуть выше коробки, поэтому, когда я быстро пишу шторм, его показ JSON, но не показано ниже предложений.
Вот HTML
<input type="text" ng-model="header.search"
typeahead-on-select="searchClicked($item)"
uib-typeahead="state as state.data.name for state in suggestions | filter:$viewValue | limitTo:8"
typeahead-min-length="0" placeholder="Søg..." search-products>
поиска продукты является использование директивы для передачи значения поиска. Вот код директивы.
APP.directive('searchProducts', searchProducts);
function searchProducts($state) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
scope.$watch(attrs.ngModel, function(searchVal) {
scope.$broadcast('searchTheProducts', searchVal);
});
}
};
}
Вот сервис, по которому мы получаем данные.
$scope.$on('searchTheProducts', function(event, query) {
if (query) {
headerService.getSearchSuggestions(query).then(
function(response) {
$scope.suggestions = response;
},
function(err) {
console.log('Error: ' + err);
}
);
}
});
здесь логика
function getSearchSuggestions(query) {
pendingRequests.cancelAll();
var url = ApiBaseUrl + "/search/suggestions?query=" + query;
var deferred = $q.defer();
pendingRequests.add({
url: url,
canceller: deferred
});
pending = true;
$http({
method: "GET",
url: url,
timeout: deferred.promise
}).then(
function(successData) {
deferred.resolve(successData.data.data);
},
function(err) {
deferred.reject(err);
}
);
return deferred.promise;
}
Не могли бы вы добавить '
' на свою страницу и показать нам, что он выводит при вводе быстро? –ston | [ { "типа": "продукт", "данные": { "имя": "Каменный век фортепиано" } }, { "типа": "отдел", "данные" : { «имя»: «Каменный век диетическое питание» } } ] – naCheex
Я написал Стон его показывая выход, но в dropownlist не показывая ничего, когда я нажимал забой внезапно его показ – naCheex