Фрагмент Shopify Liquid требует {% raw%} для вывода объекта - PullRequest
0 голосов
/ 12 февраля 2020

Я хотел бы сравнить строковый объект, но, похоже, не могу, потому что единственный способ, которым он выводит данные, - это когда у него есть {% 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" %}
... 

Может кто-нибудь помочь, пожалуйста.

1 Ответ

1 голос
/ 12 февраля 2020

Вы столкнулись с проблемой, когда на самом деле в игре есть два разных стиля шаблона. Нотация с двойными фигурными скобками на самом деле довольно распространена среди языков шаблонов, поэтому Shopify имеет теги {% raw %}, позволяющие вам включать ресурсы шаблона для шаблонов not-Shopify - например, для создания шаблона, использующего Handlebars или Mustache javascript библиотеки.

Вы не сможете провести сравнение через Liquid, поскольку переменная myBatch.my_countryOfOrigin не проходит через Liquid. Вам нужно будет найти файл javascript, который использует этот шаблон, и выполнить сравнение, используя там javascript.

Я не могу помочь вам найти нужный файл, к сожалению, но если вы посмотрите в файл, который вы редактируете выше, вы должны увидеть, что вы находитесь внутри тега <script> с типом чего-то вроде text/template, который сообщает браузеру, что это не блок кода для отображения или выполнения. С этим элементом скрипта, вероятно, будет связан идентификатор, и вы сможете использовать это значение идентификатора для поиска в файлах javascript вашей темы и определения места чтения этого шаблона, что укажет вам правильное общее направление для поиска. где вам нужно сделать сравнение.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...