我在 javascript 中创建了变量类型表,我需要在该变量与 django 数据库中的变量之间使用 if
条件进行测试,但它不起作用。
示例:
var test_date = "2017-06-23";
var locations = [
{% for v in vs %}
{% if v.date == test_date %}
['okok',{{ v.latitude }},{{ v.longitude}}],
{% endif %}
{% endfor%}
]
第一个示例不起作用,我不知道为什么。
其他示例:
var test_date = "2017-06-23";
var locations = [
{% for v in vs %}
{% if v.date == "2017-06-23" %}
['okok',{{ v.latitude }},{{ v.longitude}}],
{% endif %}
{% endfor%}
]
当我将变量的值放入测试中时,它正在工作
最佳答案
模板的 Django 部分({% %}
)在服务器上执行,而 javascript 部分在客户端(仅在浏览器中)执行。模板标签内的所有变量都是django的变量。重点是 django 可以看到文本和模板标签。它不会执行任何 jacascript 行。
让我展示 django 和 javascript 如何看待您的第一个示例。
Django:
some text
{% for v in vs %}
{% if v.date == test_date %}
another text
{% endif %}
{% endfor%}
more text
现在您会看到没有任何 test_date
变量。如果没有 test_date
变量(为空),则它不能等于 v.date
。
JavaScript:
var test_date = "2017-06-23";
var locations = [
]
如您所见(您可以在浏览器的开发工具中检查)您的服务器没有为 JavaScript 生成任何文本,因此 locations
数组为空。
如果您只是想测试 v.date
是否等于某个字符串,则可以在与此模板对应的 view 中创建变量 test_date 并将其添加到上下文中.
关于javascript - 无法使用 django 变量和 javascript 变量创建 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44636205/