Ich versuche, einen jQuery-Post zu einem JavaScript auf einer Webseite hinzuzufügen. Die gesamte Seite besteht aus mehreren Velocity-Vorlagen. Alles war gut, bis ich versucht habe, den jQuery-Post hinzuzufügen, jetzt bekomme ich:
%Vor% Zeile 282 ist $.post(...
und Spalte 24 scheint das erste Zeichen "," zu sein. Anfangs hatte ich den JSON in dieser Zeile, aber ich habe ihn nach oben verschoben (in die var myJSONObject ...
-Zeile), da ich dachte, dass der Fehler mit ungültigem JSON zusammenhing (die Tabs am Anfang der Zeile gaben eine irreführende Spaltennummer).
Nebenaktualisierung
Ich habe die folgenden Zeilen geändert:
%Vor%Die Parse-Ausnahme konzentriert sich immer noch auf das erste ", ". Ich nehme an, das Problem ist, dass Velocity denkt, dass es in der Lage sein sollte $ .post zu lösen - wenn es tatsächlich jQuery ist. Ich habe jQuery in anderen Velocity VM-Vorlagen ohne Probleme verwendet. Gibt es eine Möglichkeit, Velocity zu veranlassen, bestimmte Zeilen / Anweisungen beim Parsen zu ignorieren?
Update 2
Ich habe diesen Link gefunden, in dem es darum geht, Referenzen in Velocity zu entfernen, aber das Problem wird nicht gelöst mein Problem. Hinzufügen eines " \ " vor $.post
gibt mir genau den gleichen Fehler, aber die Spalte ist eine zusätzliche, wegen des am Anfang der Zeile hinzugefügten Zeichens.
Ok, es scheint zwei Lösungen dafür zu geben:
Erstens können wir mit jQuery einfach vermeiden, den globalen Alias $ zu verwenden und stattdessen das jQuery-Objekt direkt zu verwenden:
%Vor%In meinem Fall funktioniert das oben genannte großartig. Aber ich vermute, in anderen Szenarien (nicht-jQuery) ist dies möglicherweise nicht möglich. In diesem Fall können wir unseren Charakter innerhalb einer gültigen Velocity-Referenz wie dieser "verstecken":
%Vor%Quelle: Ссылка
Ich würde immer noch gerne wissen, warum die Backslash-Flucht nicht funktioniert hat, aber das Obige wird mich wenigstens wieder in Bewegung bringen. :)
Ich denke, das ist ein Bug in Version 1.6.x, weil es in 1.7 gut funktioniert (Wenn nicht, bitte sag es mir, ich teste es mehrmals ..), laut Referenz, die $
wird erst wirksam, wenn sie von a-zA-Z
gefolgt wird. Ich möchte versuchen zu debuggen, was wirklich passiert ist, aber der Übersetzungscode wird vom Java CC Tool erzeugt, es ist zu schwer die Logik zu erkennen ...
Ich konnte es nicht mit irgendwelchen der anderen Korrekturen arbeiten lassen, wie "$" in der Geschwindigkeit unglücklicherweise zu entkommen. Ich habe es funktioniert, indem ich eine externe js-Datei mit jQuery geladen habe, anstatt jQuery direkt in velocity zu schreiben. Arbeitete für mich zumindest, hoffe, es hilft jemandem:)
/ björn
Tags und Links javascript java jquery json velocity