温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Shopify Liquid snippet requires {% raw %} for object to output
liquid shopify

其他 - Shopify液体代码段需要{%raw%}才能输出对象

发布于 2020-05-02 03:05:04

我想比较一个字符串对象,但似乎无法,因为它输出数据的唯一方法是当它具有{% 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" %}
... 

任何人都可以帮忙。

查看更多

提问者
weber
被浏览
20
Dave B 2020-02-13 04:56

您遇到了一个问题,其中实际上有两种不同的模板样式在起作用。实际上,双弯括号表示法在模板语言之间非常普遍,因此Shopify具有{% raw %}标签,可让您包括非Shopify模板的模板资产-例如,制作使用Handlebars或Mustache javascript库的模板。

您将无法通过Liquid进行比较,因为myBatch.my_countryOfOrigin变量不是通过Liquid来的。您需要找到使用此模板的javascript文件,并在那里使用javascript进行比较。

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

祝好运!