You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DotLiquid中如何在标签内使用变量?已尝试capture/assign无效

在DotLiquid标签内使用变量的正确方式

嘿,我来帮你搞定这个问题!你遇到的核心问题是在DotLiquid的标签(比如{% for %})内部使用filter参数时,不需要用双大括号{{}}包裹变量——双大括号是用来把变量输出到最终HTML里的,而标签内部直接引用变量名就可以了。

正确写法示例

你不需要写成{% for product in category.products | limit: {{section.limit}} %},直接去掉变量外的双大括号就行:

{% for product in category.products | limit: section.limit %}
  <!-- 这里写你的产品渲染逻辑,比如输出产品标题 -->
  <h3>{{ product.title }}</h3>
{% endfor %}

为什么你之前用capture/assign没生效?

如果之前尝试用assign还是不行,大概率是这两个原因:

  • 变量名拼写错误:检查section.limit是否确实存在,有没有写错大小写或者字段名
  • 变量类型不匹配:如果section.limit是字符串类型(比如从配置里读出来的文本),需要先转成数字再用,比如:
{% assign valid_limit = section.limit | plus: 0 %}
{% for product in category.products | limit: valid_limit %}
  <!-- 产品渲染代码 -->
{% endfor %}

这里用plus: 0可以把字符串形式的数字转成数值类型,确保limit filter能正确识别。

补充说明

DotLiquid的标签内部({% ... %}包裹的部分)是直接执行Liquid逻辑的上下文,所有变量都可以直接通过名称引用,不需要额外的插值语法。只有当你需要把变量的值输出到页面的HTML内容里时,才需要用{{变量名}}的格式。

内容的提问来源于stack exchange,提问作者Kaner TUNCEL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:17:14