我正在努力实现以下结果:
我有一个carousel_images的模型,它有许多"标签"。我只想在满足条件的转盘中显示图像。我尝试了很多不同的方法,最接近的方法是使用下面的代码,然而,它显示了每个标签的图像,而不是每个标签只有一个。
<div class="span12">
<div id ="myCarousel" class="carousel slide">
<div class="carousel-inner">
{% for caro in contents.caro_images %}
{% assign first_loop = forloop.index0 %}
{% for tag in caro.tags %}
{% if tag.tag_name|downcase contains page.slug %}
<div class="{% if first_loop%}active {% endif %}item">
<a href="{{ caro.url}}">
<img src="{{ caro.image.url }}" width="720" height="316" alt="">
</a>
</div>
{% endif %}
{% endfor %}
{% endfor %}
<a style="display:none;" class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>
<a style="display:none;" class="right carousel-control" href="#myCarousel" data-slide="next">›</a>
</div>
</div>
</div>
我意识到这与循环检查标签内部显示的实际图像有关,但我真的不知道如何在循环外部进行检查,并使图像只显示一次。
我也不能100%确定如何正确设置"活动"类,因为它嵌套在次要的附加循环中。
提前感谢!
编辑----这是工作代码:
<div class="span12">
<div id ="myCarousel" class="carousel slide">
<div class="carousel-inner">
{% for caro in contents.caro_images %}
{% assign first_loop = forloop.index0 %}
{% for tag in caro.tags %}
{% if tag.tag_name == page.slug %}
<div class="{% if first_loop == 0 %}active {% endif %} item">
<a href="{{ caro.url}}">
<img src="{{ caro.image.url }}" width="720" height="316" alt="">
</a>
</div>
{% endif %}
{% endfor %}
{% endfor %}
<a style="display:none;" class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>
<a style="display:none;" class="right carousel-control" href="#myCarousel" data-slide="next">›</a>
</div>
</div>
</div>
我认为无休止的应用程序重启可能也有助于工作。
经过大量的尝试和错误,我最终改变了结构,但最终还是成功了。更新后的代码正在编辑中,以防其他人遇到此问题。
我认为用javascript在客户端处理会更好。也许可以看看其中的一些:45+旋转木马插件。