AngularJs中的自动完成功能无法正常工作

Autocomplete function in AngularJs not working properly

本文关键字:常工作 工作 功能 成功 AngularJs      更新时间:2023-09-26

我正在开发一个基于AngularJs的SPA。搜索框有一个无法正常工作的自动完成功能。当我开始在搜索框中键入时,键入的字符串会显示在{{search.name}}中,建议会出现,但当我单击其中一个建议时,它不会出现在{{search.name}}中。之后,如果按下任何其他按钮,字符串就会出现。

这是我的html代码

<div class=" upper-one">
      <div class="search-box" style="display:inline;">
        <img src="img/search.png" width="28px" height="28px" style="float:left;">
        <input id="tags" class="input-search-box" type="text" placeholder="Start typing " data-ng-model="search.name"></input>
     <a>   <div class="go-class" style="position:relative;" data-ng-click="searchProduct()"> Go</div> </a>
      </div>
      {{search.name}  
</div>

这是我的jquery代码

<script >
  $(function() {
  var availableTags =["Jquery","Html","Css"
];
  $( "#tags" ).autocomplete({
  source: availableTags
  });
 });
</script>  

我的代码出了什么问题?

这可以通过简单地使用Angular自动完成来解决。

  function DefaultCtrl($scope) {
$scope.names = ["john", "bill", "charlie", "robert", "alban", "oscar", "marie", "celine", "brad", "drew", "rebecca", "michel", "francis", "jean", "paul", "pierre", "nicolas", "alfred", "gerard", "louis", "albert", "edouard", "benoit", "guillaume", "nicolas", "joseph"];}
angular.module('MyModule', []).directive('autoComplete', function($timeout) {
return function(scope, iElement, iAttrs) {
        iElement.autocomplete({
            source: scope[iAttrs.uiItems],
            select: function() {
                $timeout(function() {
                  iElement.trigger('input');
                }, 0);
            }
        });
}; 
 });


  <div ng-app='MyModule'>
<div ng-controller='DefaultCtrl'>
    <input auto-complete ui-items="names" ng-model="selected">
    selected = {{selected}}
</div>

参考:http://jsfiddle.net/sebmade/swfjT/light/