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

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

});


慕码人2483693
浏览 449回答 2
2回答

Smart猫小萌

问题是{{ '1.1.1.1' }}呈现为1.1.1.1不包括引号。JavaScript尝试将其解析为数字,但不能。幸运的是,Flask为此提供了一个Jinja过滤器。var tmp = {{ value|tojson }};tojson将在字符串两边加上引号,并省略数字值。由Jinja呈现时,过滤后的值是具有正确类型的有效JavaScript。
打开App,查看更多内容
随时随地看视频慕课网APP