【问题标题】:How to get autocomplete with customized dropdown?如何使用自定义下拉菜单自动完成?
【发布时间】:2018-01-16 02:27:59
【问题描述】:

我必须为自动完成实现自定义下拉列表,但我无法得到它,在 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>

【问题讨论】:

标签: javascript angularjs autocomplete


【解决方案1】:

您只需在ng-repeat 中添加filter: input.question,其中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

【讨论】:

  • Tq,但是当我输入 2 个字母时,得到空列表。
  • @bpinky 这取决于你输入的内容。如果你输入“fo”,它只显示四个。这不是你想要的吗?
  • 不,当我使用引导程序时它不起作用,否则它工作正常。
  • 一旦我没有收到两个字母的任何回复,请使用引导程序检查它
  • @bpinky 找到了。 mydropdownQues=!mydropdownQues 是罪魁祸首。对于第二个字符,这是 false 并且列表被隐藏
猜你喜欢
  • 2021-10-09
  • 1970-01-01
  • 2020-02-09
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
相关资源
最近更新 更多