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

如何在.liquid文件中正确拼接section.id与form_class变量为class值?

解决Liquid {% form %}标签中class属性的变量拼接问题

你遇到的问题是因为在Liquid标签的参数字符串里,直接使用{{ }}插值不会被正确解析——Liquid在处理标签参数时,需要用它内置的字符串插值语法来处理变量。这里有两种简单有效的解决办法:

方法1:使用{% capture %}捕获拼接后的class值

先把需要的class组合用capture标签存到一个变量里,再在{% form %}中引用这个变量:

{% capture product_form_classes %}product-form-{{ section.id }} {{ form_class }}{% endcapture %}

{% form 'product', product, data-productid: product.id, id: form_id, data-section: section.id, class: product_form_classes %}
  <!-- 表单内容 -->
{% endform %}

这种方式直观易懂,适合需要复杂组合的场景,后续如果要调整class组合,直接修改capture里的内容就行。

方法2:使用Liquid的字符串插值语法#{}

在{% form %}的class参数中,直接用#{变量名}的方式在字符串内插值变量:

{% form 'product', product, data-productid: product.id, id: form_id, data-section: section.id, class: "product-form-#{section.id} #{form_class}" %}
  <!-- 表单内容 -->
{% endform %}

这是Liquid原生的字符串内插值方式,能直接在双引号包裹的参数里解析变量,写法更简洁。

两种方法都能解决你当前的问题,选哪种看你的代码习惯就行~

内容的提问来源于stack exchange,提问作者Piotr Nevzorov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:32:22