[英]Django project, pure javascript, html and template tags best practices
[英]javascript django html tags
var articles = [
{% for article in article_list %}
{% if not forloop.first %},{% endif %}
{
title: "{{ article.title }}",
slug: "{{ article.slug }}",
content: "{{ article.content }}",
authors: [
{% for author in article.authors.all %}
{% if not forloop.first %},{% endif %}
{
first_name: "{{ author.first_name }}",
last_name: "{{ author.last_name }}",
}
{% endfor %}
]
}
{% endfor %}
]
]
$('#calendar').fullCalendar('addEventSource',articles);
这是位于calendar-conf-events.js(fullcalendar)中的代码,并且会导致错误,因为我将对象传递给index.html(使用calendar-conf-events.js),而且在JS中,我使用了对象和模板标签,但是出错
错误是:“标识符或字符串文字或无数字文字”的原因为{%
您不能在.js
文件中使用模板标记,例如这样。
我个人处理这种情况的方式是将JS代码移到Django模板中,并将其包装在<script></script>
标记中:
<script>
var articles = [
{% for article in article_list %}
{% if not forloop.first %},{% endif %}
{
title: "{{ article.title }}",
slug: "{{ article.slug }}",
content: "{{ article.content }}",
authors: [
{% for author in article.authors.all %}
{% if not forloop.first %},{% endif %}
{
first_name: "{{ author.first_name }}",
last_name: "{{ author.last_name }}",
}
{% endfor %}
]
}
{% endfor %}
]
]
$('#calendar').fullCalendar('addEventSource',articles);
</script>
听起来,如果您正在访问articles
,那么您可能可以将此代码移至index.html
。
由于您的JavaScript使用jQuery,因此请确保以与在其他地方相同的方式提前加载该库。 例如,您可以在模板顶部的<head></head>
标记内添加以下内容:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.