我在AngularJS应用程序中实现了Typeahead的自动完成功能。它运行正常,但我需要在自动完成中获得与每个位置相关的id
,因为在某些情况下文本可能相同。
这是我的代码:
控制器
Stock.controller('ProviderAutocompleteController', function($scope, $http) {
$scope.providerSelected = undefined;
var responsePromise = $http.get("/getProvidersList");
responsePromise.success(function(response, status, headers, config) {
var providersList = new Array();
for(i=0; i<response.length; i++)
{
var prov = response[i];
providersList.push(prov.name);
}
$scope.providers = providersList;
});
})
HTML
<input type="text"
ng-model="providerSelected"
uib-typeahead="provider for provider in providers | filter:$viewValue | limitTo:8"
class="form-control input-md" required="">
服务getProvidersList
将在对象(也是ID)中返回每个provider
如何在自动填充中选择提供商的ID?
答案 0 :(得分:1)
当他们选择一个项目时,您将整个当前对象传递给ngModel。
您应该在
中看到IDproviderSelected.id // or whatever the ID is within that object
此外,如果您只想要ID,则可以更改循环(.name是您对象中调用的文本)
uib-typeahead="provider.id as provider.name for provider in providers"