使用 Jinja 渲染到 JS 会产生无效数字而不是字符串
Rendering to JS with Jinja produces invalid number rather than string
我想将字符串传递给模板中的某些 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);
});
问题是
{{ '1.1.1.1' }}
呈现为
1.1.1.1
不包括引号。 JavaScript 尝试将其解析为数字但不能。幸运的是,Flask 为此包含了一个 Jinja 过滤器。
var tmp = {{ value|tojson }};
tojson
将在字符串周围包含引号,并在数字值中省略它们。过滤后的值在由 Jinja 呈现时是有效的 JavaScript,类型正确。
我想将字符串传递给模板中的某些 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);
});
问题是
{{ '1.1.1.1' }}
呈现为
1.1.1.1
不包括引号。 JavaScript 尝试将其解析为数字但不能。幸运的是,Flask 为此包含了一个 Jinja 过滤器。
var tmp = {{ value|tojson }};
tojson
将在字符串周围包含引号,并在数字值中省略它们。过滤后的值在由 Jinja 呈现时是有效的 JavaScript,类型正确。