Typeahead下拉列表

时间:2014-07-23 12:28:02

标签: javascript angularjs filtering typeahead.js

我有一个API,它返回包含三个字段的列表。 EG ['Michał',6,'Michal']。第一个字段是名称全名,在我的语言中使用了变音符号,第二个是ID,thrid是全名,删除了变音符号。

现在我要输入我的选择框Michal,我希望我的搜索框找到Michal和Michał。实际上我是通过从选择框输入中删除dacritics来完成的。

现在,如果我输入Michal,它会显示Michal,但是全名是Michał,如果我输入Michał,它会说没有结果但过滤得当。

如何更改我的预先输入/选择框,以便在我写Michał之后在下拉列表中显示Michał或Michal。

1 个答案:

答案 0 :(得分:1)

请参见此处:http://plnkr.co/edit/dYyzgL9B1i06mJCePTwF?p=preview

HTML:

  <div class='container-fluid' ng-controller="TypeaheadCtrl">

    <h4>Static arrays</h4>
    <pre>Model: {{selected | json}}</pre>
   <input type="text" ng-model="selected" typeahead="person as person.pplname for person in persons | filter:$viewValue | limitTo:8" class="form-control">

 </div>

JS:

  angular.module('plunker', ['ui.bootstrap']);
    function TypeaheadCtrl($scope) {

      $scope.selected = undefined;
      $scope.persons = [{name:"michal", pplname:"michał", id:1},
      {name:"janek", pplname:"janek", id:5},
      {name:"marek", pplname:"marek", id:6},
      {name:"slawek", pplname:"sławek", id:7},
      {name:"olek", pplname:"olek", id:8},
      {name:"tomek", pplname:"tome", id:9}];
    }