#for-loop #liquid
#для цикла #liquid
Вопрос:
Я знаю, как это сделать с объектами, но в моем конкретном случае есть некоторые нюансы. Я пытаюсь выполнить итерацию var i
внутри объекта. Пожалуйста, смотрите ниже, я пробовал различные изменения в синтаксисе, но, похоже, не могу заставить это работать. Возможно ли это? Если кто-нибудь знает о какой-либо подтверждающей документации, я бы тоже хотел ее увидеть, но, похоже, нигде не могу ее найти.
<div class="grid--square">
{% for i in (1..12) %}
<div role="button" class="grid__item one-quarter" style="background:{% if settings.grid_[i]_image %}url({{ 'grid_[i].png' | asset_url }}){% else %}{{ settings.grid_[i]_color }}{% endif %};">
{% if settings.grid_[i]_link != blank %}
<a href="{{ settings.grid_[i]_link }}"></a>
{% endif %}
{%if settings.grid_[i]_text != blank %}
{% unless settings.grid_[i]_image %}
<div class="text">
<h2>{{ settings.grid_[i]_text }}</h2>
</div>
{% endunless %}
{% endif %}
</div>
{% endfor %}
</div>
Ответ №1:
Я достиг решения, захватив каждую переменную, чтобы я мог изменить весь объект.
<div class="grid--square">
{% for i in (1..12) %}
{% capture enable_image %}grid_{{ i }}_image{% endcapture %}
{% capture image %}grid_{{ i }}.png{% endcapture %}
{% capture color %}grid_{{ i }}_color{% endcapture %}
{% capture text %}grid_{{ i }}_text{% endcapture %}
{% capture link %}grid_{{ i }}_link{% endcapture %}
<div role="button" class="grid__item one-quarter" style="background:{% if settings[enable_image] %}url({{ image | asset_url }}){% else %}{{ settings[color] }}{% endif %};">
{% if settings[link] != blank %}
<a href="{{ settings[link] }}"></a>
{% endif %}
{%if settings[text] != blank %}
{% unless settings[image] %}
<div class="text">
<h2>{{ settings[text] }}</h2>
</div>
{% endunless %}
{% endif %}
</div>
{% endfor %}
</div>