Shopify Liquid 代码段需要 {% raw %} 对象才能输出

Shopify Liquid snippet requires {% raw %} for object to output

我想比较一个字符串对象,但似乎不能,因为它输出数据的唯一方式是当它有 {% raw %} 标签时。 此示例输出 {{ myBatch.my_CountryOfOrigin }}:

{% raw %}<p class="info-part" v-if="isBatches" v-for="(myBatch, l) in myyy.batches" :data-batch="'batch-' + l">
  Country of Origin: {{ myBatch.my_CountryOfOrigin }}
</p>{% endraw %}

但是当我删除 {% raw %} 标签时 {{ myBatch.my_CountryOfOrigin }} 是空白的。

我需要比较一个字符串值

{% assign myc = myBatch.my_CountryOfOrigin | strip | upcase %}
{% if myc == "ABCD" %}
... 

谁能帮帮我。

您 运行 遇到了一个问题,实际上有两种不同的模板样式在起作用。双花括号符号实际上在模板语言中很常见,因此 Shopify 有 {% raw %} 标签,允许您包含非 Shopify 模板的模板资产 - 例如,制作使用 Handlebars 或 Mustache 的模板javascript 个图书馆。

您将无法通过 Liquid 进行比较,因为 myBatch.my_countryOfOrigin 变量无法通过 Liquid 获得。您需要找到使用此模板的 javascript 文件,然后使用 javascript 进行比较。

不幸的是,我无法帮助您找到有问题的文件,但是如果您查看上面正在编辑的文件,您应该会看到您在 <script> 标签中,标签的类型类似于text/template 告诉浏览器这不是要显示或执行的代码块。该脚本元素可能有一个与之关联的 ID,您应该能够使用该 ID 值来搜索主题的 javascript 文件并找到正在读取该模板的位置,这将为您指明正确的总体方向找到您需要进行比较的地方。

祝你好运!