Ich habe eine Seite, die durch Angular dynamisch bevölkert ist. Im Wesentlichen macht Angular eine $http.get
Anfrage an das Backend, um die Daten zu erhalten und Attribute eines Controllers zu füllen.Ausführungszeit zwischen Angular und JQuery
Zum Beispiel rufe ich $http.get('/_car_data')
an und der JSON, der zurückgegeben wird, wird in meinem Controller Dealership
als Dealership.cars
gespeichert.
Durch Angular, gebe ich dann alle Dealership.cars
als Eingabefelder in meiner HTML-Seite aus.
Mein Problem ist, dass ich eine jquery 'Autocomplete' zu jeder Eingabe hinzufügen möchte. Dies funktioniert wunderbar, wenn ich es über die Google Developer-Konsole nach der Seite und eckigen vollständig gerendert habe. Wenn ich diese Funktionalität jedoch sowohl nach der Verknüpfung des Skripts mit dem HTML-Code als auch nach dem HTML-Textbereich einschließe, funktioniert es nicht. Es funktioniert auch nicht, wenn ich diese Autocomplete-Funktionalität mit $(document).ready
umgeben.
Dies ist die Funktion, die perfekt funktioniert, wenn sie in der Google Developer Console ausgeführt wird, aber nicht nach der extern verknüpften js und dem HTML-Body.
$(document).ready(function() {
var availableTags = [];
$.ajax({
url: '_available_cars',
data: {},
method: 'GET',
dataType: 'json',
success: function(data) {
availableCars = data['cars'];
$(".carchoice").autocomplete({
source: availableCars
});
},
error: function(jqXHR, textStatus, errorThrown, data) {
console.log(textStatus, errorThrown);
}
});
});
Also meine Frage ist, wie kann ich warten, bis alle HTML und Winke erstellt, dynamisch geladen Inhalt beendet Rendering meine Jquery-Anweisung auszuführen?
Sie müssen es in der angularjs Weg tun. Das heißt, mit Richtlinien. –
Frage und Denken ist falsch. Sie müssen das Plugin in einer Direktive aufrufen. Dann sind Sie sicher, das Element existiert – charlietfl