我想将一个字符串传递给模板中的一些JavaScript。但是,当JavaScript运行时,字符串被解释为(无效)数字。如何将字符串传递给JavaScript变量?
@app.route('/loadNext')
def loadNext():
return render_template('next.html', value='1.1.1.1')
$("#loadtable").ready(
function(){
var tmp = {{ value }};
alert(tmp);
});
答案 0 :(得分:6)
问题在于
{{ '1.1.1.1' }}
呈现为
1.1.1.1
报价不包括在内。 JavaScript尝试将其解析为数字而不能解析。幸运的是,Flask包含了一个Jinja过滤器。
var tmp = {{ value|tojson }};
tojson
将包含字符串周围的引号,并省略它们的数值。当由Jinja呈现时,过滤后的值是具有正确类型的有效JavaScript。