Tôi đang sử dụng AjgularJS trên trang của mình và muốn thêm trường để sử dụng tự động hoàn thành từ jqueryui và tính năng tự động hoàn tất không kích hoạt cuộc gọi ajax.Sự cố với jQuery tự động hoàn thành + AngularJS
Tôi đã thử nghiệm tập lệnh trên trang không có góc (ng-app và ng-controller) và nó hoạt động tốt, nhưng khi tôi đặt tập lệnh trên trang có angularj thì nó ngừng hoạt động.
bất kỳ ý tưởng nào?
jquery kịch bản:
$(function() {
$('#txtProduct').autocomplete({
source: function (request, response) {
alert(request.term);
},
minLength: 3,
select: function (event, ui) {
}
});
});
- lưu ý thú vị: khi tôi gọi kịch bản trên Chrome thanh tra autocomplete bắt đầu làm việc !!!
- phiên bản: AngularJS: 1.0.2 - jQueryUI: 1.9.0
KẾT LUẬN: Các widget autocomplete từ jQueryUI phải khởi từ bên trong một chỉ thị tùy chỉnh của AngularJS như ví dụ:
Markup
<div ng-app="TestApp">
<h2>index</h2>
<div ng-controller="TestCtrl">
<input type="text" auto-complete>ddd</input>
</div>
</div>
kịch bản kiễu góc
<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>
Bạn nên cố gắng tải chúng trong $ (document) .ready(); Đồng thời kiểm tra lỗi trong bảng điều khiển firebug. –
Đồng ý - bạn sẽ cần phải kiểm tra các xung đột giữa AngularJS và JQuery. Có vẻ như không có bất kỳ bài kiểm tra đơn giản nào: http: // jsfiddle.net/mccannf/w69Wt/ – mccannf
Nó có thể không liên quan đến vấn đề bạn đang thấy, nhưng tôi nghĩ bạn nên sử dụng jquery bên trong chỉ thị tùy chỉnh (hàm liên kết). – Tosh