for-loop - Shopify:如何在循环外获取forloop.index的值?

标签 for-loop scope shopify liquid

当我尝试将 forloop 索引(或其他任何内容)分配给 for 循环中的变量,然后在循环外部(之后)使用它时,分配的值会丢失。下面的代码是我尝试过的大约 20 种不同方法之一。他们都没有工作。我只需要知道 x 是否包含 y(因此变量可以是 bool 值或整数或任何值)。

{% assign has_y = 0 %}
{% for x in collection %} 
  {% if x contains y %}
    <span style="display: none">{{ has_y | plus: 1 }}</span>
  {% endif %}
{% endfor %}
{% if has_y < 1 %}
   THIS DOESN'T WORK AS EXPECTED
{% endif %}

我对 Shopify 的范围规则感到困惑...

最佳答案

问题是您正在输出 {{ has_y | plus: 1 }},但不在 for 循环内向 has_y 分配任何内容。

试试这个:

{% assign has_y = 0 %}

{% for x in collections %} 
  {% if x contains y %}
    {% assign has_y = has_y | plus: 1 %}
    <span style="display: none">{{ has_y }}</span>
  {% endif %}
{% endfor %}

{% if has_y < 1 %}
   ...
{% endif %}

或者,如果您想使用 bool 值:

{% assign has_y = false %}

{% for x in collections %} 
  {% if x contains y %}
    {% assign has_y = true %}
    <span style="display: none">{{ has_y }}</span>
  {% endif %}
{% endfor %}

{% if has_y == false %}
  ...
{% endif %}

此外,您可能需要检查 for 循环{% for x in collection %}集合是一个对象。也许您打算迭代 collection.productscollections

关于for-loop - Shopify:如何在循环外获取forloop.index的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27196441/

相关文章:

seo - 如何在shopify中替换url产品

r - 循环遍历数据帧列表以在 R 中创建数据帧

C++:如何将更改应用于动态数组交叉函数?

javascript - $on 事件,将变量设置为 true

javascript - eventListener 适用于应该位于函数私有(private)范围内的变量

seo - 在地区性 shopify 商店中正确使用 hreflang/canonical 标签

python - Flask - jinja 模板 forloop 增加循环索引

Java:你能在每次循环时改变同一个字符串的值吗?

c# - 在 Windows 窗体中动态调用函数

javascript - 如何在 Google 跟踪代码管理器中插入包含双花括号的代码