【问题标题】:Use js variable with Shopify liquid tag将 js 变量与 Shopify 液体标签一起使用
【发布时间】:2019-10-30 22:46:26
【问题描述】:

目前在 Shopify 中,我们可以创建一个 file.js.liquid 来授予对液体功能的访问权限。

<script>
var liquidData = {
  myValue: {{ product.image | asset_url }}
}
</script>

如何在 product.image 的 placeme 中使用变量? 例如:

var myVar = 'something.jpg'
    var liquidData = {
      myValue: {{ myVar | asset_url }}
    }

目前这对我不起作用,它输出的路径是 myVar 作为字符串而不是变量。我还尝试了连接,它还将变量名读取为字符串。有什么想法吗?

【问题讨论】:

    标签: shopify


    【解决方案1】:

    您必须记住,liquid 是在 DOM 之前执行的。这也适用于 Javascript 文件。

    liquid 代码在处理 JS 文件之前执行,因此当您创建 JS 变量并尝试将其传递给 Liquid 时是不可能的,因为 Liquid 在 Javascript 开始执行之前很久就完成了它的执行。

    所以总结一下,你不能从 Javascript ot Liquid 传递任何东西,但另一种方式是可能的。


    回到你的问题。

    应该是这样的:

    {% assign myVar = 'something.jpg' %}
    var liquidData = {
      myValue: "{{ myVar | asset_url }}"
    }
    

    【讨论】:

    • 我还建议始终使用 json 过滤器,它接受任何 Liquid 变量并将其转换为 javascript-legal 的东西(转义奇怪的字符,用引号包裹字符串,打印 @987654323 @如果变量为空等)。这将使{{ myVar | asset_url | json }} 作为您示例中的输出:)
    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    • 2022-06-14
    • 2011-03-05
    相关资源
    最近更新 更多