这是我目前正在做的将django模板变量传递给JS变量:
<input type="hidden" id="django_var" value="{{variable}}" />
...
var unique_var = $('#django_var').val();
在模板中是否有更直接的方法可以在表单之外工作?谢谢。
更新:js变量将是模板的外部文件,因此无法直接调用django模板变量。
答案 0 :(得分:18)
在HTML模板标题中:
<script>
var my_var = "{{ django_var }}";
</script>
<script type="text/javascript" src="/js/my_script.js"></script>
需要注意的重要一点是,在包含javascript文件之前,先在头部定义JS变量。
然后在您的javascript中,您可以访问$ my_var
答案 1 :(得分:15)
不是在模板中添加隐藏的元字段,而是在模板中添加一些内联Javascript:
<script>
var MyGlobal = {
var_1: {{var_1}},
var_2: {{var_2}},
};
</script>
稍后,在外部JS文件中,您可以执行以下操作:
var unique_var = MyGlobal.var_2;
答案 2 :(得分:1)
有时它更干净,不能创建一大堆全局变量,你可以将它们作为参数传递给js文件,如下所示:
<script type="text/javascript" src="/js/my_script.js?param1=xyz&param2=abc"></script>
在你的外部js中你可以轻松编写一个方法来解析这些参数。