【问题标题】:Adding conditions to <script src=..> in html using django使用 django 在 html 中向 <script src=..> 添加条件
【发布时间】:2019-05-06 05:24:58
【问题描述】:

html:

 <body>
    <script>
        var participants =[];
    </script>
    {% for player in playerList %}
        ...........
        {% empty %}
            <div style="text-align: center; color: Black; margin-bottom: 90%">
                <h2>empty</h2>
            </div>
    {% endfor %}

    <script type="text/javascript" src="{% static 'event-management-system/js/index.js' %}"></script>

    </body>

我想在participants =[] 为空时停止执行&lt;script type="text/javascript" src="{% static 'event-management-system/js/index.js' %}"&gt; 部分。该怎么做?

【问题讨论】:

  • 请确保您的问题已正确标记。在这种情况下,您添加了一个不相关的 javascript 标记,并且您没有指定您正在使用的模板语言。做这些事情会增加你获得所需答案的机会。
  • 我看错了,你的问题其实和JS有关,抱歉。
  • 这是使用django模板语言吗?
  • 问题在于participants 变量的来源。如果它来自模板,则可以使用模板语言,否则可以使用 JavaScript。
  • 是的,我们理解您的问题。但在您的示例中,participants 始终为空。如果它的价值来自 Django,它应该在你的例子中显示出来。

标签: javascript html django django-templates


【解决方案1】:

我很确定您使用的是 django 模板语言。如果是这样,请标记为这样。您可以使用|length 检查列表的长度。这样做吧

{% if playerList|length > 0 %}
    <script type="text/javascript" src="{% static 'event-management-system/js/index.js' %}">
{% endif %}

如果您只想在填充participants 时包含此script。或者你可以简单地这样做

{% if playerList %}
    <script type="text/javascript" src="{% static 'event-management-system/js/index.js' %}">
{% endif %}

我相信,但第一个更明确,在我看来,更容易知道发生了什么。

【讨论】:

  • 在这种情况下,participants 是在脚本标签中定义的,所以我怀疑它在 Django 模板中是否可用。但是,如果源也在那里可用,这将起作用。
  • @JonKoops 好点。我从 cmets 中得知,participantsviews.py 提供。如果是这样的话,那么在 javascript 中声明它对我来说没有多大意义。
  • 确实,这个问题的示例还不够完整,无法全面了解数据的实际来源。
  • 好吧,现在我会留下这个答案,以防我能够成功填空。如果知道更多细节会使这个答案无效,我会删除它。
  • 是的。它正在工作... Participants[] 是在 html 文件中创建的。 playerList 来自 django,views.py 文件。然后就可以解决了。
【解决方案2】:

如果您指的是浏览器中的 JavaScript,那么您可以做一些事情。

<body>
<script>
    var participants =[];
</script>
{% for player in playerList %}
    ...........
    {% empty %}
        <div style="text-align: center; color: Black; margin-bottom: 90%">
            <h2>empty</h2>
        </div>
{% endfor %}

<script>
(function() {
   if(participants.length){
    document.write('<script src="{% static 'event-management-system/js/index.js' %}"><\/script>');
   }
})();
</script>

</body>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-02
    • 2023-02-11
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多