我在我的页面上使用 AjgularJS 并希望添加一个字段以使用来自 jqueryui 的自动完成功能,并且自动完成功能不会触发 ajax 调用。
我已经在没有 angular(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>
角脚本
<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>