Ich habe Probleme, Javascript eval() mit gwt zu verwenden.gwt jsni Variablenname verschleiert
Grundsätzlich hat ich in meiner DB eine dynamische Zeichenfolge, zum Beispiel:
"'31.07.' + (myVar.getMonth() <= 7 ? myVar.getFullYear() + 3: myVar.getFullYear() + 4)"
meineVar soll ein Javascript-Variable vom Typ Datum.
Diese Variable wird über GWT JSNI geben:
private native String eval(Date dateFieldValue, String scriptlet) /*-{
var myVar = dateFieldValue;
return $wnd.eval(scriptlet);
}-*/;
Aber die "myVar" Variable in der scriptlet Zeichenfolge nicht gefunden wird. Ich habe folgendes gefunden: https://support.google.com/code/answer/55205?hl=en
Das erklärt, warum dies passiert. müsste ich meine scriptlet so trennen:
"'31.07.' + (" + myVar + ".getMonth() <= 7 ? " + myVar + ".getFullYear() + 3: " + myVar + ".getFullYear() + 4)"
Das Problem ist, dass dies nicht flexibel sein würde, da die scriptlet in der Datenbank verwaltet wird, nicht im Code. Was also in diesem Fall zu tun? Ist das unmöglich?
Codeverschleierung ist eine Option, die Sie einfach ausschalten können. – Lista
Aber gwt wird immer noch Variablennamen ändern, oder? Obwuscation zu drehen wäre zu viel, denke ich. – edu
Ja, ich stimme zu, aber könnte in einem Moment der Verzweiflung eine Option sein. – Lista