我在我的页面上使用AngularJS,并想添加一个字段以使用来自jqueryui的自动完成功能,但自动完成不会触发ajax调用。
我在没有AngularJS(ng-app和ng-controller)的页面上测试了该脚本,它可以正常工作,但是当我将脚本放在带有AngularJS的页面上时,它就停止工作了。
有什么想法吗?
jquery脚本:
我在没有AngularJS(ng-app和ng-controller)的页面上测试了该脚本,它可以正常工作,但是当我将脚本放在带有AngularJS的页面上时,它就停止工作了。
有什么想法吗?
jquery脚本:
$(function () {
$('#txtProduct').autocomplete({
source: function (request, response) {
alert(request.term);
},
minLength: 3,
select: function (event, ui) {
}
});
});
- 有趣的一点是:当我在Chrome检查器中调用脚本时,自动完成开始工作!
- 版本:AngularJS:1.0.2 - JqueryUI:1.9.0
结论: 来自jQueryUI的自动完成小部件必须从AngularJS的自定义指令内初始化,例如:
标记
<div ng-app="TestApp">
<h2>index</h2>
<div ng-controller="TestCtrl">
<input type="text" auto-complete>ddd</input>
</div>
</div>
Angular脚本
<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>