无法从 Liquid 中的模板访问代码段中定义的变量

Can't access variable defined in Snippet from Template in Liquid

我有一个片段包含在多个模板中。它执行一些操作,然后根据这些操作的结果定义一些具有值的变量。然后模板需要以几种不同的方式使用这些值。

我似乎无法从模板访问代码段中定义的变量。一个非常淡化的例子:

Sinppets/colors.液体

{% assign myVar = "bar" %}

templates/color-picker.液体

{% assign myVar = "foo" %}
{% render 'colors' %}
{{ myVar }}

此输出为 foo,而预期输出为 bar

是我做错了什么,还是这不可能?

你没有做错任何事,是的,这是不可能的,至少在render.

render 调用的片段内声明的变量只能在该片段内访问。 Render 已替换现在已弃用的 include,但允许您在上面的示例中实现您想要做的事情。

也就是说,您现在仍然可以使用 include - 此处有更多信息 >> https://shopify.dev/api/liquid/tags/deprecated-tags#include