我正在使用python flask temple建立一个网站。我有一个案例,我想将一个python列表发送到java脚本。 python列表包含三个对象,但是当我在java脚本环境中执行list1.length时,我看到此列表的长度为23.这很可能是因为java脚本将其标识为字符串。我的问题是如何让python列表在传递到javascript后保持列表?
# my route with python list1
@app.route('/chart_sandbox')
def chart_sandbox():
list1 = ['abc', 'def', 'hij']
return render_template("chart_sandbox.html", list1=json.dumps(list1))
# My Java script
<script type="text/javascript">
var list1 = '{{list1|tojson}}'
var listLength = list1.length
document.write(listLength)
document.write(list1)
</script>
# this is what is returned to me. As you can see java script length is seen
#as 23 instead of 3
23"["abc", "def", "hij"]"
答案 0 :(得分:2)
删除jinja文本周围的引号。这会将您的列表转换为列表的字符串表示形式。这样的事情应该有效:
var list1 = {{ list1 | tojson }};
答案 1 :(得分:0)
谢谢,它对我有用。
<script>
var divlist = {{ pylist | tojson }};
for(i=0; i < divlist.length; i++){
divId = divlist[i];
console.log(divId);
}
</script>