我有一个包含名称和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

09-25 18:35
查看更多