液体模板:将String值解析为对象并用作变量

时间:2018-11-04 18:46:05

标签: liquid

我想为内容编辑者提供一种指定他们想要使用的画廊的方法。现在,将输入作为字符串检索,当将其存储到旨在用作对象的变量中时,该字符串将不起作用。请查看下面的代码:

{% 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 :(得分:1)

"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] %}