我在树枝/交响乐中有一个循环,如下:
{% for breadcrumb in page.breadcrumbs %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endfor %}
我试图检查for循环中的第一个变量。如果等于Artists
,那么html部分需要被新的代码替换。
所以我做的是:
{% for breadcrumb in page.breadcrumbs %}
{% if loop.first %}
{% if breadcrumb.title == 'Artists' %}
<a href="{{ 'artists' | url }}">{{ 'Artists' | t }}</a>{% else %}<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endif %}
{% endfor %}
然而,当bradcrumb路径变深然后两个级别然后第二级别之后的所有内容都不再显示时,这是有效的。所以我的意思是:
home > Artist > //nothing shown here anymore. Loop stops I think??
Instead of
home > artists > category1 > subcategory 2
有谁知道我做错了什么。为什么循环会停止使用此代码?
答案 0 :(得分:1)
循环继续,但您已将整个输出逻辑包装到loop.first
变量条件中。
你需要这样做:
{% for breadcrumb in page.breadcrumbs %}
{% if loop.first and breadcrumb.title == 'Artists' %}
<a href="{{ 'artists' | url }}">{{ 'Artists' | t }}</a>
{% else %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endfor %}
通过这种方式,您将检查两者循环的第一次迭代以及标题是否为&#34; Artists&#34;
答案 1 :(得分:0)
您只是检查第一次迭代(第一次循环),而对其余部分不执行任何操作:
{% for breadcrumb in page.breadcrumbs %}
{% if loop.first %}
{% if breadcrumb.title == 'Artists' %}
<a href="{{ 'artists' | url }}">{{ 'Artists' | t }}</a>
{% else %}
<a href="{{ breadcrumb.url | url }}">{{ breadcrumb.title }}</a>
{% endif %}
{% endif %}
{% endfor %}