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

Liquid templating : Parsing String value to objects and using as a variable

我想为内容编辑提供一种方法来指定他们想要使用的图库。现在,输入被检索为字符串,当存储到一个旨在用作对象的变量中时,它不起作用。请查看下面有效的代码:

{% 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

以上变量不起作用。

"site.galleries.projects" 是一个字符串。打印此字符串将 return 只是一个字符串。

如果您想在 site.galleries array/hash 中达到 属性,您可以使用:

  • 点符号:site.galleries.projects
  • 带字符串的括号表示法:site.galleries["project"]
  • 带变量的括号表示法:site.galleries[myVar](没有引号,没有大括号)

这可行:

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

{% assign pagehandle = site.galleries[page.user-input] %}