Używam AjgularJS na mojej stronie i chcę dodać pole do korzystania z autouzupełniania z jqueryui, a autouzupełnianie nie wywołuje wywołania ajax.Problemy z autouzupełnieniem jQuery + AngularJS
Testowałem skrypt na stronie bez kątowej (ng-app i ng-kontroler) i działa dobrze, ale kiedy umieściłem skrypt na stronie z angularjs przestał działać.
jakiś pomysł? Skrypt
jQuery:
$(function() {
$('#txtProduct').autocomplete({
source: function (request, response) {
alert(request.term);
},
minLength: 3,
select: function (event, ui) {
}
});
});
- interesująca uwaga: gdy zgłoszę skrypt na Chrome Inspektor autouzupełnianie rozpoczyna pracę !!!
- Wersje: angularjs: 1.0.2 - jQueryUI: 1.9.0
WNIOSEK: Widget autouzupełnianie z jQueryUI musi być inicjuje od wewnątrz dyrektywy niestandardowej angularjs jako przykład:
Markup
<div ng-app="TestApp">
<h2>index</h2>
<div ng-controller="TestCtrl">
<input type="text" auto-complete>ddd</input>
</div>
</div>
kątowa skrypt
<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>
Należy spróbować ładuje je w $ (document) .ready(); Sprawdź także błędy w konsoli firebug. –
Uzgodniono - będziesz musiał sprawdzić, czy nie ma konfliktów między AngularJS i JQuery. Wygląda na to, że nie ma żadnego prostego testu: http: // jsfiddle.net/mccannf/w69Wt/ – mccannf
Może to nie być istotne z powodu problemu, który widzisz, ale myślę, że powinieneś używać jquery wewnątrz dyrektywy niestandardowej (funkcja łącza). – Tosh