Shopify “奇怪的问题”;菜单“;液体物体
我有一个关于对象Shopify “奇怪的问题”;菜单“;液体物体,shopify,liquid,Shopify,Liquid,我有一个关于对象菜单的问题,它类似于链接列表。它有一种奇怪的行为 这是代码。第6-9行包含从菜单对象获取菜单的4条类似指令: {% for link in linklists.main-menu.links %} {% if collection.handle == link.handle %} <p>test</p> {% endif %} {% assign linkTitleHandleize = link.title | handleize %
菜单
的问题,它类似于链接列表
。它有一种奇怪的行为
这是代码。第6-9行包含从菜单
对象获取菜单的4条类似指令:
{% for link in linklists.main-menu.links %}
{% if collection.handle == link.handle %}
<p>test</p>
{% endif %}
{% assign linkTitleHandleize = link.title | handleize %}
<p>menu[collection.handle] returns {{ menus[collection.handle] }}</p>
<p>menu["bags"] returns {{ menus["bags"] }}</p>
<p>menu[link.handle] returns {{ menus[link.handle] }}</p>
<p>menu[linkTitleHandleize] returns {{ menus[linkTitleHandleize] }}</p>
{% endfor %}
{%用于链接列表中的链接。主菜单。链接%}
{%if collection.handle==link.handle%}
试验
{%endif%}
{%assign linkTitleHandleize=link.title | handleize%}
menu[collection.handle]返回{{menu[collection.handle]}
菜单[“包”]返回{{菜单[“包”]}
menu[link.handle]返回{{menu[link.handle]}
菜单[linkTitleHandleize]返回{{菜单[linkTitleHandleize]}
{%endfor%}
因此,html输出为:
试验
菜单[collection.handle]返回EmptyDrop
菜单[“行李”]返回清空菜单
菜单[link.handle]返回LinkListDrop
菜单[linkTitleHandleize]返回LinkListDrop
出于某种原因,菜单
对象仅在键为link.handle
或转换为link.title | handleize
时返回预期的“bags”菜单数组(请记住变量linkTitleHandleize
只是一个普通字符串)
如果我试图通过collection.handle
或甚至是普通字符串(在我的例子中是“bags”)传递相同的字符串,则菜单
不返回任何内容。我很困惑,因为字符串是相等的(请参见第2行的条件-它返回true,并且“test”正在渲染),这是一个非常奇怪的行为,在这之前我认为我对Liquid非常了解
UPD:我必须重新表述我的问题。它不是关于如何创建代码的工作版本。这是一种研究:为什么液体会为菜单[collection.handle]和菜单[“bags”]返回EmptyDrop,为什么在linkTitleHandleize=link.handle=collection.handle=“bags”的情况下为菜单[link.handle]和菜单[linkTitleHandleize]返回LinkListDrop。谢谢大家! 液体中没有
菜单
对象
我不知道你从哪里得到的对象引用
代码应该如下所示
{% for link in linklists.main-menu.links %}
{% if collection.handle == link.handle %}
<p>test</p>
{% endif %}
{% assign linkTitleHandleize = link.title | handleize %}
<p>linklists[collection.handle] returns {{ linklists[collection.handle] }}</p>
<p>linklists["bags"] returns {{ linklists["bags"] }}</p>
<p>linklists[link.handle] returns {{ linklists[link.handle] }}</p>
<p>linklists[linkTitleHandleize] returns {{ linklists[linkTitleHandleize] }}</p>
{% endfor %}
{%用于链接列表中的链接。主菜单。链接%}
{%if collection.handle==link.handle%}
试验
{%endif%}
{%assign linkTitleHandleize=link.title | handleize%}
linklists[collection.handle]返回{{linklists[collection.handle]}
LinkList[“bags”]返回{{LinkList[“bags”]}
linklists[link.handle]返回{{linklists[link.handle]}
linklists[linkTitleHandleize]返回{{linklists[linkTitleHandleize]}
{%endfor%}
请注意,它将只返回
[对象]
,因为您指的是链接列表对象是“菜单”,“链接列表对象在Shopify管理员的导航页面中称为“菜单”。-菜单正是Shopify管理员UI中所指的链接列表对象是的,谢谢。我在Shopify官方文档中看到了这个引用。实际上,Shopify在文章的顶部提到了它:“Tip linklist对象在Shopify管理员的导航页面中称为“菜单”。因此,主要问题不是如何创建正确的代码(我知道怎么做)。这是关于液体引擎/语言是如何工作的,以及为什么它为同一个键输出如此奇怪的数组结果。