液体 - 除非 for.loop 似乎总是最后一个

liquid - unless for.loop always seems to be last

考虑以下:

{% for variant in product.variants %}
    {{ forloop.index }}<br>
    {{ unless forloop.last }}LAST<br>{{ endunless }}
{% endfor %}

根据 shopify docs:

Returns true if it's the last iteration of the for loop. Returns false if it is not the last iteration.

以上代码的输出是:(对于 3 个变体)

1
LAST
2
LAST
3
LAST

为什么? forloop.last 上下文中的变体对象是否与其他对象不同?

您已使用双花括号分隔符而不是花括号百分比分隔符来分隔 unless 查询。因此,它们不会围绕文字值 LAST 形成条件范围,因此总是添加(忽略条件)。

如果您为条件使用正确的大括号样式,它应该可以正常工作:

{% for variant in product.variants %}
    {{ forloop.index }}<br>
    {% unless forloop.last %}LAST<br>{% endunless %}
{% endfor %}

详情见the documentation