2017-01-07 2 views
0

Как я могу использовать выражение Jinja2 в js-функции? Я пробовал что-то похожее на строки ниже, и выражение не работает. Атрибут fileList, используемый в ответе, представляет собой список, поступающий из колбы через Json.Как установить выражение jinja2 с переменной Javascript?

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.