Liquid - Передача переменной 'section' для печати на фрагменте ' - PullRequest
0 голосов
/ 18 апреля 2020

В моем разделе есть переменная, которую я хотел бы напечатать в одном из моих фрагментов. Как мне go узнать об этом?

Пример:

Section name = 'pricing_option'
Variable name = 'section.settings.price_name'

Я хотел бы передать вышеуказанную переменную в мой фрагмент 'course_card', который затем должен быть напечатан. Как мне этого добиться?

Снимок экрана с кодом раздела 'pricing_options' Снимок экрана с фрагментом кода 'course_card'

1 Ответ

0 голосов
/ 18 апреля 2020

Если вы находитесь в shopify, вы должны использовать RENDER. Они не рекомендуют INCLUDE:

your_section.liquid

{% assign price_name = section.settings.price_name %}

{% render 'your_snippet',  price_name:  price_name %}

. Вы можете использовать price_name внутри своего фрагмента

Другие платформы продолжают использовать INCLUDE. INCLUDE не требуют объявления переменных, фрагменты включены в раздел родительского раздела. означает:

your_section.liquid

{% assign price_name = section.settings.price_name %}
{% assign cool_stuff = section.settings.cool_stuff %}

{% include 'your_snippet' %}

your_snippet.liquid

<p> Here you can see {{ cool_stuff }} or {{ price_name }} </p>

Будьте осторожны, так как фрагмент будет видеть все переменные из раздела, и это может вызвать ошибки .

Другой вариант - использовать СО. он передает значение фрагменту как переменную с тем же именем фрагмента.

{% assign price_name = section.settings.price_name %}

{% inlcude 'your_snippet' with price_name %} 

{% comment %} 
  this is valid too 

  {% inlcude 'your_snippet' with section.settings.price_name %} 
{% endcomment %}

в your_snippet.liquid

<p> my price name is {{ your_snippet }}</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...