2017-01-07 15 views
0

js関数内でJinja2式を使用するにはどうすればよいですか?私は下の行に似た何かを試してみたが、表現は機能していない。応答で使用される属性fileListは、Jsonを介してフラスコから来るリストです。Javascript変数を使用してjinja2式を設定するにはどうすればよいですか?

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

'JSON.parse'がクライアント側で行われているので、サーバー側で' myFiles'を設定することはできません。これは、あなたがしようとしていることです。クライアント側でjinja2式を実行する場合は、クライアント側のjinja2ライブラリ([nunjucks](https://mozilla.github.io/nunjucks/)など)の使用を検討する必要があります。 – metatoaster

答えて

1

Jinja2はテンプレート言語です。つまり、すべてのテンプレート式が評価され、クライアントに配信される前にテキストコードまたはHTMLコードに置き換えられます。 一方、Javascriptはクライアント側で使用されるスクリプト言語です。

JavaScriptからJinja2式に値を渡す方法は実際にはありません。クライアント側でJinja2式が存在しないのは、既にテキストまたはHTMLコードで置き換えられているためです。

しかし、単にクライアントからサーバーにデータを渡したい場合は、それを行う方法がたくさんあります。おそらく、あなたに最も合うものはAjaxです。

関連する問題