我在我的页面上使用AjgularJS并且想要添加一个字段以使用来自jqueryui的自动完成,并且自动完成不会触发ajax调用.
我已经在没有角度的页面上测试了脚本(ng-app和ng-controller)并且它运行良好,但是当我将脚本放在带有angularjs的页面上时它会停止工作.
任何的想法?
jquery脚本:
$(function () {
$('#txtProduct').autocomplete({
source: function (request, response) {
alert(request.term);
},
minLength: 3,
select: function (event, ui) {
}
});
});
Run Code Online (Sandbox Code Playgroud)
结论: 来自jQueryUI的自动完成小部件必须从AngularJS的自定义指令内部初始化,例如:
标记
<div ng-app="TestApp">
<h2>index</h2>
<div ng-controller="TestCtrl">
<input type="text" auto-complete>ddd</input>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
角度脚本
<script type="text/javascript">
var app = angular.module('TestApp', []);
function TestCtrl($scope) { }
app.directive('autoComplete', function () {
return function postLink(scope, iElement, iAttrs) {
$(function () {
$(iElement).autocomplete({
source: function (req, resp) {
alert(req.term);
}
});
});
}
});
</script>
Run Code Online (Sandbox Code Playgroud)