从外部js文件获取模板变量的最佳方法

时间:2011-09-06 00:17:34

标签: javascript jquery django

这是我目前正在做的将django模板变量传递给JS变量:

<input type="hidden" id="django_var" value="{{variable}}" />
...
var unique_var = $('#django_var').val();

在模板中是否有更直接的方法可以在表单之外工作?谢谢。

更新:js变量将是模板的外部文件,因此无法直接调用django模板变量。

3 个答案:

答案 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&amp;param2=abc"></script>

在你的外部js中你可以轻松编写一个方法来解析这些参数。