Как обновить django vairable внутри javascript
Как мы можем получить доступ к переменной в части JS, например "{{vaiable_name}}"
. Как мы можем обновить значение variable_name
внутри javascript?
Один из способов - внедрить небольшой Javascript через шаблонизатор Django, с подстановкой {{переменной}}.
Мой собственный файл 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 определяется нулевая функция, которая будет выполнена, когда документ будет готов)
вы можете добавить тег span с id и затем нацелить id в javascript
<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>
or также будет работать, если нет других переменных с таким именем
<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>