列在javascript文件中使用的模板标记中

问题描述 投票:0回答:1

正如标题所说,我想使用views.py中的列表到javascript文件。我读了这个主题,但在我的情况下,它不起作用:link

我的views.py:

...
arr = ['first', 'second', 'third']
return render(request, "something.html",{"array": arr})
...

something.html:

...
<script>
     array_js = eval("{{ array|escapejs }}");
</script>
<script src="{% whatever.js %}"></script>
...

我在whatever.js文件中使用array_js。它工作正常,但我正在使用eval函数。我不想使用它,但我不知道如何在没有eval函数的情况下使其工作。

我是初学者,所以请耐心等待。谢谢

javascript python django django-templates eval
1个回答
1
投票

由于数组被认为是有效的JSON,因此您只需使用JSON.parse

array_js = JSON.parse('{{ array|escapejs }}')

但一定要在视图上将其设置为JSON:

import json

...

return render(request, "something.html", {"array": json.dumps(arr)})
© www.soinside.com 2019 - 2024. All rights reserved.