如何在js函数中使用Jinja2表达式?我尝试过与下面这些类似的东西,但表达方式并没有奏效。响应中使用的属性fileList是来自flask通过Json的列表。
var response = JSON.parse(req.responseText);
{% set myFiles = response.fileList %}
答案 0 :(得分:1)
Jinja2是一种模板语言。这意味着在提供给客户端之前,所有模板表达式都将被评估并替换为文本或HTML代码。 而Javascript是客户端使用的脚本语言。
因此实际上没有办法将任何值从Javascript传递给Jinja2表达式,因为客户端上根本不存在任何Jinja2表达式,因为它们已经被文本或html代码替换了。
但是,如果您只是想将任何数据从客户端传递到服务器,那么有很多方法可以做到这一点。可能最适合你的是Ajax电话。
答案 1 :(得分:0)
我认为您希望在js中包含表达式或语句。 可以使用双引号(“”)。您不能直接在js文件中添加一件事。在代码末尾使用您的代码
var response = JSON.parse(req.responseText);
"{% set myFiles = response.fileList %}"
为清楚理解,
app.py
@app.route('/')
def home():
return render_template('index.html',check=0,text='hai')
index.html
<div>
.
.
.
</div>
<script>
var text = {{ text }} //Throws error
var text = "{{ text }}" //console it
{% if(check == 0) %}
console.log('its true')
{% endif %} //Throw error
"{% if(check == 0) %}"
console.log('its true')
"{% endif %}"//Success
</script>
它为我工作。投票表决是否可行