我正在使用带有集成ui bootstrap typeahead的角度形式来通过服务查询api。承诺已正确解决,但是typeaheads列表仅显示已用输入查询的数据。
简单示例:我输入:"伯尔尼",该服务触发四个请求:
承诺得到妥善解决,顺序正确。但是使用来自query_term = Ber的数据输入清单建议,而不是最后一个query_term =伯尔尼。
有什么建议吗?
以下是代码详细信息:
服务:
var srv = {
getName: function (query_term) {},
};
srv.getName = function (query_term) {
return $http.get(srv._baseUrl + '/locating/api/autocomplete?query_term=' + query_term)
.then(function(res) {
return res.data;
}).catch(function (err) {
console.log(err);
});
};
return {
getName: function (query_term) {
return srv.getName(query_term);
}
};
(形式)控制器:
{
key: '_name',
type: 'autocompleteNoWildcard',
templateOptions: {
options: [],
onChange: function ($viewValue, $scope) {
if (typeof $viewValue != 'undefined') {
return $scope.templateOptions.options = locationService.getName($viewValue);
};
}
}
},
Html模板:
formlyConfig.setType({
name: 'autocompleteNoWildcard',
template: '<input type="text" autocomplete="off" ng-model="model._name" uib-typeahead="item.label for item in to.options" typeahead-no-results="noResults" class="form-control">',
wrapper: ['bootstrapLabel', 'bootstrapHasError'],
});
答案 0 :(得分:0)
当名称长度超过3个字符时,加油门并开始轮询。