代码之家  ›  专栏  ›  技术社区  ›  Jeffrey

使用uib typeahead在对象中循环

  •  1
  • Jeffrey  · 技术社区  · 9 年前

    我正在尝试使用uib typeahead循环遍历一个对象,但我不知道该在 uib-typeahead 论点

    我的HTML是:

    <input type="text" ng-model="selected" uib-typeahead="option for option in options" class="form-control">
    

    我的角度代码是:

    $scope.options = {
        22: "Abc",
        27: "Def",
        55: "Ghi"
    }
    

    如果我现在输入什么,我什么都看不见。当我选择其中一个选项时,我希望在输入中获得键值。我应该在 uib提前键入 论点

    1 回复  |  直到 9 年前
        1
  •  1
  •   Robert Corey    9 年前

    您使用的是对象而不是数组来填充下拉列表。下面是一个plunker,显示它在数组中正常工作 http://plnkr.co/edit/8VkpF4pKHBMKrPQPtnkT?p=preview

    angular.module('plunker', ['ui.bootstrap']);
    function TypeaheadCtrl($scope) {
      $scope.options = [
        "Abc",
        "Def",
        "Ghi"
      ];
    }
    

    您可以像这样将对象转换为数组

    var obj = {1: 'a', 2: 'b', 3: 'c'};
    
    var arr1 = [];
    for (var i in obj) {
      arr1.push(obj[i]);
    }
    // or you can use lodash https://lodash.com/
    var arr2 = _.map(obj);
    //both result in ['a', 'b', 'c']