Shopify Liquid中满足条件时如何创建变量和更新

时间:2020-03-18 04:01:37

标签: shopify liquid

我正在尝试创建一个全局布尔变量,并使用它来检查是否满足条件。如果满足条件,则执行特定操作并将其设置为true,以便下次不执行该操作。

这是我要使用的代码,目前看来全局变量未受影响,并且始终将其设置为true,并且始终执行操作。

提前谢谢!以及任何有关如何干燥的建议,将不胜感激。

{% assign firstFound = false %}

{% if product.metafields.pdm.product-details %}
    {% if firstFound == false %} {% assign firstFound = true %} {% endif %}
    <li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="details">Product Details</button></li>
{% endif %}

{% if settings.about_diamonds %}
    {% if firstFound == false %} {% assign firstFound = true %} {% endif %}
    <li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="diamonds">About Our Diamonds</button></li>
{% endif %}

{% if settings.shipping_returns %}
    {% if firstFound == false %} {% assign firstFound = true %} {% endif %}
    <li><button type="button" class="reset {% if firstFound == true %}active{% endif %}" data-target="shipping">Shipping and Returns</button></li>
{% endif %}

1 个答案:

答案 0 :(得分:0)

我相信您的代码可以正常工作。您将firstFound变量设置为true,因此active类已分配给所有按钮。如果您只想将类别分配给第一个显示的按钮,则需要将代码更改为类似的内容:

{% assign firstFound = false %}

{% if product.metafields.pdm.product-details %}
    <li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="details">Product Details</button></li>
{% endif %}

{% if settings.about_diamonds %}
    <li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="diamonds">About Our Diamonds</button></li>
{% endif %}

{% if settings.shipping_returns %}
    <li><button type="button" class="reset{% unless firstFound %}{% assign firstFound = true %} active{% endunless %}" data-target="shipping">Shipping and Returns</button></li>
{% endif %}