Angular Typeahead保存标识

时间:2015-11-29 14:50:21

标签: javascript angularjs

我在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?

1 个答案:

答案 0 :(得分:1)

当他们选择一个项目时,您将整个当前对象传递给ngModel。

您应该在

中看到ID
providerSelected.id // or whatever the ID is within that object

此外,如果您只想要ID,则可以更改循环(.name是您对象中调用的文本)

uib-typeahead="provider.id as provider.name for provider in providers"