[英]Shopify Liquid: output variable to a .js file
我的资产文件夹下有一个custom.js.liquid
文件,我已将此行添加到theme.liquid
。
<script src="{{ 'custom.js' | asset_url }}" defer="defer"></script>
我正在尝试 output 产品的标题为 javascript,在custom.js.liquid
中,我把
console.log({{ all_products['absolut-vodka'] | json }});
.js.liquid 文件无法识别此行。 在前端,在custom.js
文件中它变成
console.log(null);
另一方面,如果我把
<script>console.log({{ all_products['absolut-vodka'] | json}});</script>
在theme.liquid
文件中,它可以output正确的object。
我做错了什么?
资产文件是 Shopify 强缓存的资源。 这意味着您无法访问任何可能在页面之间、客户之间更改等的 Liquid 变量。产品详细信息可以在任何时间由您自己或应用程序更新,因此这也属于事物的类别在您的资产文件中不可用。
在您的.js.liquid
文件中,您可以访问的主要内容是:
......就是这样。 值得注意的是,主题和语言设置都位于您的主题文件中,这可能与 Shopify 围绕这些 Liquid 限制的决定有关
如果您想获取absolut-vodka
产品的产品详细信息,您可以使用 Shopify 的店面 API 获取您需要的详细信息。 (例如:通过获取/products/some-product-handle.js
)。 例如:
function getProductThenDoStuff(productHandle, callbackFunction){
fetch('/products/' + productHandle + '.js')
.then(function(response){ return response.json() })
.then(callbackFunction)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.