v9.2.0
基本使用
渲染一个模板
从模板 根路径 引入一个模板:
{% render 'footer.liquid' %}
设置 extname 选项为 ".liquid" 后上面的 .liquid 后缀就可以省略了,等价于:
{% render 'footer' %}
变量作用域通过
render渲染一个子模板时,它内部的代码不能访问父模板的变量,父模板中也不能访问它里面定义的变量。这个封装会让模板代码更容易理解和维护。
变量传递
父模板里定义的变量可以通过 render 标签的参数列表传递给子模板:
{% assign my_variable = 'apples' %}
{% render 'name', my_variable: my_variable, my_other_variable: 'oranges' %}
全局变量 不需要传递,所有文件都可以访问它们。
参数
with 参数
使用 with...as 语法可以给子模板传递一个变量:
{% assign featured_product = all_products['product_handle'] %}
{% render 'product' with featured_product as product %}
上面的例子中,子模板中 product 会保有父模板中的 featured_product 变量的值。
for 参数
用 for...as 语法可以对可枚举对象的每一个值渲染一次子模板:
{% assign variants = product.variants %}
{% render 'variant' for variants as variant %}
上面的例子中,对 product 的每个 variants 是指都会渲染一次子模板。子模板中 variant 变量会保有父模板中的 product.variants 中对应元素的值。
forloop 对象使用 for 参数时,在子模板中可以访问 forloop 对象。