2017-01-07 2 views
0

Wie kann ich einen Jinja2-Ausdruck innerhalb einer js-Funktion verwenden? Ich habe etwas Ähnliches wie die folgenden Zeilen versucht und der Ausdruck funktioniert nicht. Das Attribut fileList, das als Antwort verwendet wird, ist eine Liste, die von Kolben über Json kommt.Wie setze ich einen jinja2-Ausdruck mit einer Javascript-Variablen?

var response = JSON.parse(req.responseText); 
{% set myFiles = response.fileList %} 
+2

Da 'JSON.parse' auf der Client-Seite ausgeführt wird, können Sie' myFiles' nicht auf der Serverseite festlegen, was Sie damit implizieren. Wenn Sie den jinja2-Ausdruck auf der Client-Seite ausführen möchten, sollten Sie eine clientseitige jinja2-Bibliothek verwenden (z. B. [nunjucks] (https://mozilla.github.io/nunjucks/)). – metatoaster

Antwort

1

Jinja2 ist eine Vorlagensprache. Das bedeutet, dass alle Vorlagenausdrücke ausgewertet und entweder durch Text oder HTML-Code ersetzt werden, bevor sie sogar dem Client bereitgestellt werden. Während Javascript eine Skriptsprache ist, die auf der Clientseite verwendet wird.

Also gibt es eigentlich keine Möglichkeit, irgendwelche Werte an einen Jinja2-Ausdruck von Javascript zu übergeben, da es auf der Client-Seite einfach keine Jinja2-Ausdrücke gibt, weil sie alle bereits durch Text oder HTML-Code ersetzt wurden.

Wenn Sie jedoch einfach irgendwelche Daten vom Client zum Server übergeben möchten, gibt es viele Möglichkeiten, dies zu tun. Wahrscheinlich am besten für Sie wäre ein Anruf Ajax.

Verwandte Themen