繁体   English   中英

Shopify 液体:output 变量到 a.js 文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM