就像我们可以访问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>