我有一个文本框,我想在其上应用自动完成功能。我正在使用以下插件:
自动压缩
它可以正常工作,但是一旦我将其与AngularJS结合使用,它就会停止工作:
我有以下代码:
function personController($scope) { $scope.firstName = "John", $scope.lastName = "Doe", $scope.availableTags = [], $scope.fullName = function() { /* return $scope.firstName + " " + $scope.lastName;*/ $scope.availableTags= [ "ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme" ]; $(document).ajaxComplete(function(){ alert(''); $("#txt").autocomplete({ source: $scope.availableTags, }); }); //return $scope.availableTags; } }
和jfiddle的链接如下:
小提琴
如您所见,虽然没有Angular,但自动完成功能不起作用。
有人可以帮忙吗?
<html lang="en"> <head> <meta charset="utf-8" /> <title>jQuery UI Autocomplete - Default functionality</title> <script data-require="angular.js@1.3.9" data-semver="1.3.9" src="https://code.angularjs.org/1.3.9/angular.js"></script> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css" /> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script> <script> var app=angular.module('app',[]); app.controller('ctrl',function($scope){ $scope.availableTags = [ "ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme" ]; $scope.complete=function(){ console.log($scope.availableTags); $( "#tags" ).autocomplete({ source: $scope.availableTags }); } }); </script> </head> <body ng-app="app" ng-controller="ctrl"> <div class="ui-widget"> <label for="tags">Tags: </label> <input id="tags" ng-keyup="complete()"/> </div> </body> </html>
为您服务的傻瓜 http://plnkr.co/edit/5XmPfQ78vRjSrxE0Tt3B?p=preview 对不起,我不擅长摆弄。