2017-04-14 62 views
0

我必须实现自动完成的自定义下拉列表,但我无法得到它,在这里ng-change我得到的答复。但问题是如何通过键入前三个字母来获得自动完成,并且必须通过使用键盘键来移动下拉菜单。如何使用自定义下拉菜单获取自动完成功能?

的JavaScript:

$scope.fnAutocompleteQuestion = function (question) { 
     $scope.data = [ 
     { "val": 1, "txt": "one" }, 
     { "val": 2, "txt": "two" }, 
     { "val": 3, "txt": "three" }, 
     { "val": 4, "txt": "four" }, 
     { "val": 5, "txt": "five" }]; 
     console.log($scope.data); 
    }; 

HTML:

 <div class="input-group dropdown" ng-class="{'open': mydropdownQues}"> 
     <input type="text" class="form-control" ng-model="input.question" 
    data-toggle="dropdown" aria-describedby="basic-addon2" ng-change="fnAutocompleteQuestion(input.question);mydropdownQues=!mydropdownQues"> 
    <div class="dropdown-menu width-menu"> 
      <ul class="ul-scroll"> 
       <li ng-repeat="value in data " ng-click="input.question=value.txt"> 
        {{value.txt}} 
        <hr ng-show="!$last"> 
       </li> 
      </ul> 
     </div> 
    </div> 
+0

https://material.angularjs.org/latest/demo/autocomplete – niksofteng

+0

@尼基尔Vartak不,我需要定制一个 – anub

回答

1

你只需要添加filter: input.questionng-repeat其中input.questionng-model搜索文本。事情是这样的:

<li ng-repeat="value in data | filter: input.question" ng-click="input.question=value.txt"> 
    {{value.txt}} 
    <hr ng-show="!$last"> 
</li> 

working example

+0

Tq的,但是当荫输入2个字母,让空的清单。 – anub

+0

@bpinky它取决于你输入的内容..如果你输入“fo”,它只显示四个。这不是你想要的吗? – tanmay

+0

没有当Iam使用引导它不工作,否则它工作正常。 – anub

相关问题