用Jinja渲染JS会产生无效的数字而不是string
我想传递一个string到模板中的一些JavaScript。 但是,当JavaScript运行时,string被解释为一个(无效的)数字。 如何将string传递给JavaScriptvariables?
@app.route('/loadNext') def loadNext(): return render_template('next.html', value='1.1.1.1')
$("#loadtable").ready( function(){ var tmp = {{ value }}; alert(tmp); });
问题是这样的
{{ '1.1.1.1' }}
呈现为
1.1.1.1
行情不包括在内。 JavaScript试图将其parsing为一个数字,而不能。 幸运的是,Flask包含一个Jinjafilter。
var tmp = {{ value|tojson }};
tojson
将包括string的引号,并将其忽略为数字值。 过滤的值由Jinja呈现时,是正确types的有效JavaScript。