javascript - 如何在 Angular JS 中获得自动完成功能?

标签 javascript jquery angularjs

我有一个包含名称和ID的对象。我只想根据名称进行自动完成。我尝试了如下所示的代码

//Js file
var app=angular.module("myapp",[]);
app.controller("controller",['$scope',function($scope){
    $scope.persons=[
                    {
            Name:"Bhavani",
            Id:67
    },
    {
        Name:"Mamata",
        Id:66
    },
    {
        Name:"Prasanna",
        Id:65
    },
    {
        Name:"Ramya",
        Id:64
    },
    {
        Name:"Navya",
        Id:63
    }
    ];
    $scope.complete=function(){
        $("#autocomp").autocomplete({
            source: $scope.persons.Id
        });
    };
}]);

//HTML文件

<!DOCTYPE html>
<html ng-app="myapp">
<head>
<meta charset="UTF-8">
<title>Auto Complete based on name</title>
<script src="angularfiles/angular.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script>
<script src="Jsfiles/autocomp.js"></script>
</head>
<body ng-controller="controller">
    <div ng-repeat="p in persons">{{p.Name}}
    </div>
     <div class="ui-widget">
    <input type="text" id="autocomp" ng-keyup="complete()">
    </div>
</body>
</html>

上面的代码可能有一些错误。它没有得到我想要的输出。任何人都可以帮我解决这个问题。

最佳答案

尝试这样, HTML:

 <div ng-app = "myapp">
    <div ng-controller="controller">
      <div class="ui-widget">
         <input type="text" id="autocomp" auto-complete>
        </div>
    </div>
  </div>

Js:

var app = angular.module("myapp",[]);
app.controller("controller",function($scope){
  $scope.availableTags = [
     {
            Name:"Bhavani",
            Id:67
    },
    {
        Name:"Mamata",
        Id:66
    },
    {
        Name:"Prasanna",
        Id:65
    },
    {
        Name:"Ramya",
        Id:64
    },
    {
        Name:"Navya",
        Id:63
    }
    ];

}).directive("autoComplete",function(){
  return function(scope,element,attrs){
    var names =$.map(scope.availableTags,function(value){   return value.Name;          
 });
      element.autocomplete({
      source: names
    });


    };
});

工作中jsbin

关于javascript - 如何在 Angular JS 中获得自动完成功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32578516/

相关文章:

javascript - 选择 2 个具有相同类 jQuery 的随机 div

javascript - 一键提交多个表单(动态创建),每个表单可以单独提交

javascript - 如何显示从用户输入获得的 jquery 变量?

javascript - AngularJS 1.3.8 中的 "Argument ' BrowseController ' is not a function, got undefined"

node.js - Protractor 在 PhantomJS 上运行测试

android - @angular/core@2.0.0-rc.1 包不满足其 sibling 的 peerDependencies 要求!

javascript - 如何使 jQuery UI 可排序的 div 仅从图标中拖动?

javascript - 将 rowdata 标记从 javascript 传递到 servlet

javascript - 有没有获取history.pushState()的状态对象数据的方法?

jquery - Div 在底部 CSS/HTML 拆分