Жидкие шаблоны: парсинг String для объектов и использование в качестве переменной - PullRequest
0 голосов
/ 04 ноября 2018

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

{% assign pagehandle = site.galleries.projects %}

<div class="section thumbs-grid" aria-hidden="true">
  {% for image in pagehandle.images %}
     <img src="{{ image | gallery_asset_url }}"/>
  {% endfor %}
</div>

Значение, которое я извлекаю из пользовательского ввода, сохраняется в виде строки, следовательно, как показано ниже:

{{ page.user-input }} // Outputs site.galleries.projects

{% assign pagehandle = page.user-input %} // Probably stored as string

Указанная выше переменная не работает.

1 Ответ

0 голосов
/ 04 ноября 2018

"site.galleries.projects" - это строка. Печать этой строки не вернет ничего, кроме строки.

Если вы хотите получить свойство в site.galleries массиве / хэше, вы можете использовать:

  • точечная запись: site.galleries.projects
  • Обозначение в скобках со строкой: site.galleries["project"]
  • обозначение в скобках с переменной: site.galleries[myVar] (без кавычек, без фигурных скобок)

Это может работать:

{{ page.user-input }} // Outputs string "**projects**"

{% assign pagehandle = site.galleries[page.user-input] %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...