如何计算Liquid中的变量+1

her*_*off 6 ruby liquid

我完全被如何计算加上一个指向变量的变量所困扰{% assign var = 0 %}.这应该是最简单的任务.这是我到目前为止所尝试的:

{% assign amount = 0 %}
{% for variant in product.variants %}
    {% assign amount = amount + 1 %}
{% endfor %}

Amount: {{ amount }}
Run Code Online (Sandbox Code Playgroud)

结果总是如此0.也许我忽视了一些显而易见的事情.也许有一个更好的方式.我想要归档的只是获取运行的迭代次数.

zes*_*ssx 7

由于{{ increment amount }}将输出您的变量值并且不影响由其定义的变量{% assign %},我建议您使用{% capture %}:

{% assign amount = 0 %}
{% for variant in product.variants %}
    {% capture amount %}{{ amount | plus:1 }}{% endcapture %}
{% endfor %}

Amount: {{ amount }}
Run Code Online (Sandbox Code Playgroud)

我同意这很冗长,但它是AFAIK唯一可行的解​​决方案.


Con*_*ing 6

这对我有用并且有点不那么冗长:

{% assign amount = 0 %}
{% for variant in product.variants %}
  {% assign amount = amount | plus:1 %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

此外,它看起来capture返回一个字符串而不是整数,因此amount如果您想要执行类似的操作,则必须强制转换为整数{{if amount >= 10}}