我如何读取从javascript到jinja模板的数组:
<script type="text/javascript">
var x =0;
function ActionDeterminator() {
x=x+1;
document.getElementById("me").innerHTML=x;
var $label = $('input[id = optionD]').next();
$label.text(x);
alert('{{option_D[0]}}');
return true;
}
</script>>
当我使用上面的代码时..它工作得很好。但是当我想把变量x放在这样的时候:
<script type="text/javascript">
var x =0;
function ActionDeterminator() {
x=x+1;
document.getElementById("me").innerHTML=x;
var $label = $('input[id = optionD]').next();
$label.text(x);
alert('{{option_D[x]}}');
return true;
}
</script>>
我得到一个空警报对话框。任何人都可以告诉我如何解决这个问题
答案 0 :(得分:1)
你应该能够意识到,在'{{option_D[x]}}'
中,整个表达式在进入浏览器之前由Jinja进行评估,并且Jinja对x
的内容一无所知。
相反,你应该让Jinja输出整个列表作为JS数组,然后让Javascript进行元素选择:
alert({{ option_D }}[x]);
在将服务器端发送到模板之前,您可能需要在服务器端将option_D
转换为JSON。