我可以在JS文件中使用液体吗?

时间:2019-08-24 07:09:52

标签: javascript liquid

我正在使用Shopify,如果存在特定的产品标签,我需要显示一些消息。我需要从JS文件中检查产品标签,并且需要知道该怎么做。

我尝试在js文件中使用{{product.tags}},但出现错误,我也在.js.liquid文件中尝试了此操作,但仍然抛出错误。

{% assign clearance = false %}
    {% for tag in product.tags %}
            {% if tag contains 'Clearance' %}
                 {% assign clearance = true %}
            {% endif %}
   {% endfor %}

有一种方法可以在js中使用?如果没有,我如何以js方式获取所有产品标签?我知道我可以从临时文件中执行此操作,但是我只能在js文件中执行该操作。

2 个答案:

答案 0 :(得分:2)

您可能正在寻找名为jsx的Java扩展。

除此之外,您本来就有template literals,但是您只能在其中使用表达式,没有循环或其他逻辑(除了ternary expressions之外)。

如果您要查找的内容与创建HTML无关,而仅与修改变量(或对数据执行其他代码)有关,则可以使用标准Javascript:

let clearance = false;
for (const tag in product.tags) { // this assumes product.tags is an object
for (const tag of product.tags) { // this assumes product.tags is an array
    if (tag.includes('Clearance') {
        clearance = true;
    }
}

答案 1 :(得分:0)

.js.liquid文件在Liquid中将仅接受翻译字符串作为var(例如:{{“ my_text” | t}}。

如果您想在Javascript代码中使用其他类型的Liquid字符串,则可以使用一节,并将您的JavaScript包含在{%javascript%}标签内。

这也可以在代码段或模板中使用。