为了账号安全,请及时绑定邮箱和手机立即绑定

用Jinja渲染到JS会产生无效的数字而不是字符串

/ 猿问

用Jinja渲染到JS会产生无效的数字而不是字符串

慕码人2483693 2019-12-06 15:12:01

我想将字符串传递给模板中的某些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);       

});


查看完整描述

2 回答

?
慕姐829404

问题是


{{ '1.1.1.1' }}

呈现为


1.1.1.1

不包括引号。JavaScript尝试将其解析为数字,但不能。幸运的是,Flask为此提供了一个Jinja过滤器。


var tmp = {{ value|tojson }};

tojson将在字符串两边加上引号,并省略数字值。由Jinja呈现时,过滤后的值是具有正确类型的有效JavaScript。


查看完整回答
反对 回复 2019-12-06
?
炎炎设计

假设输出正确,您的代码应该可以正常工作;jsfiddle.net/yhtxknk1。我只能假设{{message.mac[0][0]}}不会以JS可接受的格式给您数组。您是否检查过源到达客户端后的格式?

查看完整回答
反对 回复 2019-12-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信