是否有一个“break”标签来逃避 Liquid 中的循环?

Posted

技术标签:

【中文标题】是否有一个“break”标签来逃避 Liquid 中的循环?【英文标题】:Is there a "break" tag to escape a loop in Liquid? 【发布时间】:2011-12-23 02:46:16 【问题描述】:

如何在 Liquid 中跳出循环,主要是 for 循环?我试过% break %,但失败了保存文件时出错:未知标签'break'

我正在尝试实现以下目标:

var variants = [];
% for item in cart.items %
    % if item.product.handle == "handle-name" %
    variants = item.product.variants | json;
    % break % // won't work
    % endif %
% endfor %

【问题讨论】:

【参考方案1】:

对于未来的访客。上面的代码确实在当前的 Liquid (gem v2.5.1) 中工作。

所以,你可以这样做:

% for item in cart.items %
    % if item.product.handle == "handle-name" %
    variants = item.product.variants | json;
       % break % // This will work
    % endif %
% endfor %

【讨论】:

约斯特是对的。只需更新您的液体宝石。看看这个页面github.com/Shopify/liquid/issues/119 奇怪,我不知何故错过了这个答案。感谢侯赛因的评论,我无法测试它,但答案似乎正确,所以我接受它。 它可以工作,但它仍然不是 shopify 文档的一部分 - docs.shopify.com/themes/liquid-documentation/tags/… 文档已更新为包含 % break %% continue %

以上是关于是否有一个“break”标签来逃避 Liquid 中的循环?的主要内容,如果未能解决你的问题,请参考以下文章

Jekyll/Liquid - 如何将大块文本添加到 YAML 前端?

html 标签相关产品 - 添加到product.liquid

scss 使用Autoprefixer在SASS中编译Shopify Liquid标签的Gulp任务

Liquid 是不是有“不包含”或“不在数组中”运算符?

使用Liquid将+1计数动态传递给zendesk中的票证字段

您如何在 Liquid 中发表评论?