javascript django html标签

时间:2016-10-04 02:05:18

标签: javascript html django

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中我使用对象和模板标签,但错误

错误是:"标识符或字符串文字或没有预期的数字文字" 导致{%

1 个答案:

答案 0 :(得分:1)

您不能在.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>

听起来您可以将此代码移至index.html,如果您正在访问articles

更新

由于您的JavaScript使用jQuery,请确保提前加载该库,就像在其他地方一样。例如,您可以在模板顶部的<head></head>标记内添加以下内容:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>