【问题标题】:Can't access variable defined in Snippet from Template in Liquid无法从 Liquid 中的模板访问 Snippet 中定义的变量
【发布时间】:2021-08-02 14:26:29
【问题描述】:

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

似乎我无法从模板访问在 sn-p 中定义的变量。一个非常淡化的例子:

Sinppets/colors.liquid

{% assign myVar = "bar" %}

模板/color-picker.liquid

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

这个输出是foo,而预期输出是bar

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

【问题讨论】:

    标签: variables shopify liquid


    【解决方案1】:

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

    render 调用的sn-ps 内声明的变量只能在该sn-p 内访问。 Render 已经替换了 include,它现在已被弃用,但允许您实现您在上面的示例中尝试做的事情。

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

    【讨论】:

    • 虽然这对我的特定用例没有帮助,但可能值得一提的是,您还可以使用 {% render 'my-snippet', var_for_snippet = ‘bar’ %} 将值传递给代码段
    猜你喜欢
    • 1970-01-01
    • 2014-06-02
    • 2012-05-04
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多