我完全不知道如何通过{% assign var = 0 %}
对一个变量进行计数加一。这应该是最简单的任务。这是我到目前为止所尝试的内容:
{% assign amount = 0 %}
{% for variant in product.variants %}
{% assign amount = amount + 1 %}
{% endfor %}
Amount: {{ amount }}
结果始终为0
。也许我忽视了一些显而易见的事情。也许有一个更好的方式。我想要归档的只是获得运行的迭代次数。
答案 0 :(得分:6)
由于{{ increment amount }}
将输出您的变量值而不会影响{% assign %}
定义的变量,我建议您使用{% capture %}
:
{% assign amount = 0 %}
{% for variant in product.variants %}
{% capture amount %}{{ amount | plus:1 }}{% endcapture %}
{% endfor %}
Amount: {{ amount }}
我同意这很冗长,但它的AFAIK是唯一可行的解决方案。
答案 1 :(得分:3)
这对我有用,而且不那么冗长:
{% assign amount = 0 %}
{% for variant in product.variants %}
{% assign amount = amount | plus:1 %}
{% endfor %}
此外,看起来capture
返回一个字符串而不是一个整数,如果你想做amount
之类的事情,就必须将{{if amount >= 10}}
强制转换为整数。