我想在collection.liquid中基于一些条件场景创建一个自定义集合,为此我应用了concat
,append
和join
,但问题是它返回ProductDropProductDropProductDropProductDrop...
或LazyProductDropCollectionLazyProductDropCollection
而不是产品。下面是代码片段
{% assign custom_products = '' %}
{% for product in collections["paneer-easy-indie-bowls"].products %}
{% assign custom_products = custom_products | append: product %}
{% endfor %}
我尝试了join
和concat
而不是append,但返回了ProductDropProductDropProductDropProductDrop...
{% assign custom_products = custom_products | concat: product %}
然后我尝试了以下方法:
{% capture custom_products %}
{% for product in collections["paneer-easy-indie-bowls"].products %}
{{ custom_products }},{{ product.handle }}
{% endfor %}
{% endcapture %}
{% assign custom_products = custom_products | split: ',' %}
{% for product in custom_products %}
{{ product}}
{% endfor %}
但是这个代码没有以正确的方式添加产品。我想要像{{collection.products}}
一样的产品。有什么建议吗?
2条答案
按热度按时间brc7rcf01#
如果我没有看错您的伪代码,您正试图从一个产品集合构建一个产品集合。这就引出了一个问题,为什么?既然你已经有了一个完美的收藏,就照原样使用吧!
ggazkfy82#
遗憾的是,这些字符串过滤器不能用于Liquid对象。
如果您能够创建一个包含所有这些自定义产品的集合,那将是最好的。
但是如果您想要的自定义产品没有任何相关性,并且太多而无法手动添加到新集合中,
您可以使用if/unless语句或“where”过滤器来过滤迭代中的产品。
考虑使用相同的Liquid迭代创建JavaScript对象。
例如:
然后你就可以用JavaScript来处理任何事情了。
当然,这是不太推荐的,如果你能只使用Liquid和HTML来处理所有事情,那就最好了。