如何在javascript中更新django变量



就像我们可以访问JS部分中的一个变量,比如"{{vaiable_name}}"。如何在javascript中更新variable_name的值?

假设代码看起来像这样,

{% if variable_name %}
<p> Condition is true </p>
{% endif %}

一种方法是通过Django模板引擎注入一个小Javascript,并使用{{variable}}替换。

我自己的base.html包含

<script type="text/javascript"> $(document).ready(  function() {
{% block onready_js %}{% endblock onready_js %}   
}); 
</script>

然后在任何扩展base.html的模板中,如果我想传递变量值,我可以简单地对进行编码

{% block onready_js %}
/* some JS with Django substitutions */
var foo = "{{foo}}";
...
{% endblock %}

你必须记住的一件事是,你的JS不能包含连续的开括号或闭括号,它们之间没有空格!

(如果没有定义块,那么base.html定义了一个空函数,当文档准备好时执行(

您可以添加一个带有id的span标记,然后在javascript 中定位该id

<span id='django_variable_id'>{{variable_name}}</span>
<script>
function update_django_variable(new_var){
/* get the span element */
var span = document.getElementById('django_variable_id');
/* set new var here */
span.innerText = new_var;
}
</script>

或者只要没有其他名称为的变量,也会起作用

<span id='var_{{variable_name}}'>{{variable_name}}</span>
<script>
function update_django_variable(new_var){
/* get the span element */
var span = document.getElementById('var_{{variable_name}}');
/* set new var here */
span.innerText = new_var;
}
</script>

最新更新