【问题标题】:Liquid control flow tags {% for %} and {% else %}液体控制流标签 {% for %} 和 {% else %}
【发布时间】:2018-01-18 00:20:02
【问题描述】:

在 Shopify 主题中使用 Liquid 仍然是新手,并且缺少一些领域的文档,因此我处于“边学习边学习”模式,并且我正在从头开始重建 Shopify 的 Simple 主题作为学习工具。我在 collection-template.liquid 中发现了这段代码:

1   {% for product in collection.products %}
2       {% if collection.products.size == 1 %}
3           <!-- Template Logic -->
4       {% else %}
5           <!-- Template Logic -->
6       {% endif %}
7           
8       {% include 'product-grid-item' %}
9
10  {% else %} <!-- HANGING ELSE STATEMENT? -->
11
12      <!-- Template Logic -->
13
14      {% if shop.products_count == 0 and collection.handle == 'all' %}
15          <!-- Template Logic -->
16      {% else %}
17          <!-- Template Logic -->
18      {% endif %}
19  {% endfor %}

来自 Java 背景,第 10 行看起来像一个编译错误。这是一个 else 声明,没有开头 if

但是,根据上下文线索,我想知道 {% else %} 是否类似于 if (empty),这意味着上述 sn-p 在功能上等同于:

{% if collection.products.size == 0 %}
    <!-- Line 11-18 from above snippet -->
{% else %}
    {% for product in collection.products %}
        <!-- Line 2-9 from above snippet -->
    {% endfor %}
{% endif %}

有人可以确认吗?

【问题讨论】:

    标签: shopify liquid control-flow


    【解决方案1】:

    对于 for 循环使用的集合长度为零的情况,这是一个后备方案。见https://help.shopify.com/themes/liquid/tags/iteration-tags#else

    【讨论】:

    • 完美,谢谢。我也那么认为。我一定是在扫描文档时错过了这一点。
    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 2016-05-04
    • 2011-11-07
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 2022-06-14
    • 2011-12-16
    相关资源
    最近更新 更多