将 JavaScript 变量分配给模板文件中的 Django 渲染变量
Assigning JavaScript variables to Django rendered variables in template files
<state data-value="{{ state }}"></state>
在我的 JavaScript 文件中我有:
var state = document.getElementsByTagName('state')[0].getAttribute('data-value');
过去这样做是因为 XHTML1.1 规范 - 在当今时代正确的方法是什么?
<div data-value="{{ state }}"></div>
?
我们也可以在 html 模板中做 <script>var state = '{{ state }}';<script>
但我有很多这样的作业。
我们还能如何批量分配 JavaScript 推送到 HTML 模板中的变量?
您可以在 Django 视图上下文中添加如下内容:
"MY_VARIABLES": json.dumps({
"state": "My state",
"number": 40,
"isActive": True,
...
})
并且在模板中只分配一个变量并将值用作对象属性:
var MY_VARIABLES = {{ MY_VARIABLES|safe }};
> MY_VARIABLES.state
'My state'
> MY_VARIABLES.number
40
> MY_VARIABLES.isActive
true
<state data-value="{{ state }}"></state>
在我的 JavaScript 文件中我有:
var state = document.getElementsByTagName('state')[0].getAttribute('data-value');
过去这样做是因为 XHTML1.1 规范 - 在当今时代正确的方法是什么?
<div data-value="{{ state }}"></div>
?
我们也可以在 html 模板中做 <script>var state = '{{ state }}';<script>
但我有很多这样的作业。
我们还能如何批量分配 JavaScript 推送到 HTML 模板中的变量?
您可以在 Django 视图上下文中添加如下内容:
"MY_VARIABLES": json.dumps({
"state": "My state",
"number": 40,
"isActive": True,
...
})
并且在模板中只分配一个变量并将值用作对象属性:
var MY_VARIABLES = {{ MY_VARIABLES|safe }};
> MY_VARIABLES.state
'My state'
> MY_VARIABLES.number
40
> MY_VARIABLES.isActive
true