【发布时间】:2016-05-07 19:14:55
【问题描述】:
现在我创建的变量似乎无法跨文件通信。
【问题讨论】:
现在我创建的变量似乎无法跨文件通信。
【问题讨论】:
只要你使用
{% assign variable = value %}
您应该能够在文件中的任何位置获取该值,以及在分配后包含的任何文件。
我相信这是最接近全局变量的方法。
【讨论】:
似乎模板是在主题之前加载的,因此在布局/主题文件中设置的变量不会出现在模板中。令人沮丧。但是,您可以通过 sn-p 设置它们,并将此 sn-p 包含在您的模板、布局等中
【讨论】:
对于 Liquid,您可以在 include 中传递一个变量
{%- assign global_var = "VALUE" -%}
{%- include 'YOUR_FILE' global_var: global_var -%}
对于 Shopify 液体,您可以执行以下操作:
有一个解决方法,你可以在主题设置中将全局变量设置为选项config/settings_schema.json
{
"type": "text",
"id": "global_variable",
"label": "global variable",
"default": "Variable value"
},
你可以通过液体文件访问它
settings.global_variable
但该值取决于您在主题设置中输入的内容。
如果你需要更动态的方式,你可以通过ajax设置购物车属性,比如:
$.ajax({
type: 'POST',
url: '/cart/update.js',
data: { attributes: {'global_variable': "MY_VALUE"} },
dataType: 'json',
success: function(cart) {
location.reload();
}
});
然后在主题中的任何地方通过 cart.attributes.global_variable 但是每次购物车为空时您都必须更新它
【讨论】: