如何在 .liquid 文件中使用 JavaScript 访问 Shopify 的元字段?

huangapple go评论141阅读模式
英文:

Shopify: how to access a Shopify metafield using JavaScript in a .liquid file?

问题

  1. 我正尝试在 .liquid 文件中使用 JavaScript 访问 Shopify 的元字段。该元字段是一个单行文本字段。
  2. {% javascript %}
  3. console.log({{product.metafields.custom.sample_name.value}});
  4. {% endjavascript %}
  1. 一些我尝试过的建议,但未成功...
  2. 建议 1:在元字段周围加上引号
  3. {% javascript %}
  4. console.log('{{product.metafields.custom.sample_name.value}}');
  5. {% endjavascript %}
  1. 建议 2:将元字段赋值给一个变量... 但似乎与直接使用元字段一样
  2. {% assign tempVar = product.metafields.custom.sample_name.value %}
  3. {% javascript %}
  4. console.log(tempVar);
  5. {% endjavascript %}
英文:

I am trying to access a Shopify metafield using JavaScript in a .liquid file. The metafield is a single line text field.

  1. {% javascript %}
  2. console.log({{product.metafields.custom.sample_name.value}});
  3. {% endjavascript %}

Some things I've tried from suggestions elsewhere that did not work...

Suggestion 1: put quotes around the metafield

  1. {% javascript %}
  2. console.log('{{product.metafields.custom.sample_name.value}}');
  3. {% endjavascript %}

Suggestion 2: assign the metafield to a variable... but this seems to still be the same as just directly using the metafield

  1. {% assign tempVar = product.metafields.custom.sample_name.value %}
  2. {% javascript %}
  3. console.log(tempVar);
  4. {% endjavascript %}

答案1

得分: 0

以下是要翻译的内容:

您可以使用此代码:

  1. <script>
  2. console.log({{product.metafields.custom.sample_name.value | json }});
  3. </script>

有关Liquid中json过滤器的更多信息:
https://shopify.dev/docs/api/liquid/filters/json

英文:

You may use this:

  1. <script>
  2. console.log({{product.metafields.custom.sample_name.value | json }});
  3. </script>

More info about the json filter in liquid:
https://shopify.dev/docs/api/liquid/filters/json

答案2

得分: 0

原始问题是无法在Liquid JavaScript标签内呈现Liquid(?),即:

{% javascript %}{% endjavascript %}

但我发现在Liquid JS标签之外的脚本标签中仍然可以呈现Liquid...

所以像这样的内容可以正常工作...

英文:

The original issue is liquid cannot be rendered within liquid JavaScript tags (?) i.e.:

  1. {% javascript %}{% endjavascript %}

but I found liquid can still be rendered within script tags outside of liquid js tags...

  1. <script></script>

So something like this will work...

  1. <script>
  2. console.log({{product.metafields.custom.sample_name.value }});
  3. </script>

huangapple
  • 本文由 发表于 2023年6月25日 19:22:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/76550151.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定