javascript - Angular Typeahead 保存 ID

标签 javascript angularjs

我在 AngularJS 应用程序中实现了 Typeahead 的自动完成功能。它工作正常,但我需要获取与自动完成中每个位置相关的 id,因为在某些情况下文本可能是相同的。

这是我的代码:

Controller

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将在对象中返回,对于每个provider,我如何获取在自动完成中选择的提供者的ID?

最佳答案

当他们选择一个项目时,您会将整个当前对象传递给 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"

关于javascript - Angular Typeahead 保存 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984090/

相关文章:

javascript - 如何设置新浏览器标签页的标题?

javascript - Ember.js 嵌套的 ArrayController 和模型

javascript - 在成功登录后运行 HTTP post

angularjs - 在 AngularJS 的 ng-bind 中使用过滤器后添加更多文本

html - 在angularjs中弹出期间限制暗区

javascript - 在 AngularJS 中仅接受字母数字和 1 点

javascript - 刷新 Angular ui 网格数据的最佳方法。状态刷新或将新数据提供给 $scope.gridOptions.data?

javascript - 更改 JQuery 版本破坏了 jquery fancybox

Javascript删除codeigniter中的确认框

javascript - 如何使用 Javascript 停止调整大小...?