液体模板:将字符串值解析为对象并用作变量
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] %}
我想为内容编辑提供一种方法来指定他们想要使用的图库。现在,输入被检索为字符串,当存储到一个旨在用作对象的变量中时,它不起作用。请查看下面有效的代码:
{% 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] %}