Как создать переменную и обновить, когда условие выполнено в Shopify Liquid - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь создать глобальную логическую переменную и использовать ее для проверки выполнения условия. Если условие выполнено, выполните определенное действие и установите значение true, чтобы в следующий раз действие не выполнялось.

Вот код, который я пытался использовать, в настоящее время похоже, что глобальная переменная не является затрагивается и всегда имеет значение true, и действие всегда происходит.

Заранее спасибо! И любые рекомендации о том, как dry это будет оценено.

{% 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 голосов
/ 21 марта 2020

Я считаю, что ваш код работает как надо. Вы устанавливаете переменную 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...