Rob*_*ert 6 operators variable-assignment liquid assignment-operator assign
我正在使用 Shopify 的 Liquid 模板。我希望某些元素仅在该月份恰好是 12 月时才显示。由于有多个元素需要这个,所以我想在文档顶部设置一个变量并稍后引用它。这是我所得到的有效的:
<!-- At the top of the page -->
{% assign month = 'now' | date: "%m" %}
{% if month == "12" %}
{% assign isDecember = true %}
{% else %}
{% assign isDecember = false %}
{% endif %}
<!-- Only show in December -->
{% if isDecember %}
Happy Holidays
{% endif %}
Run Code Online (Sandbox Code Playgroud)
这可行(为了测试,我将“12”更改为当前月份),但它非常难看。在大多数语言中我会这样做:
{% assign isDecember = (month == "12") %}
Run Code Online (Sandbox Code Playgroud)
Liquid 不接受括号,所以显然这是行不通的。没有括号它也不起作用。该文档提供了使用运算符和为变量分配静态值的示例,但没有介绍如何将两者结合起来。
我可以将过滤器的输出分配|给变量,但似乎没有过滤器来覆盖每个运算符(甚至是必要的“==”),所以这是不令人满意的。
有什么方法可以将运算符的输出分配给 Liquid 中的变量吗?
没有办法优雅地做到这一点,根据this,他们不会支持三元运算符。有人提到有人尝试类似的事情。
稍微更短/不同的版本是:
{% assign month = 'now' | date: "%m" %}
{% liquid
case month
when '12'
assign isDecember = true
else
assign isDecember = false
endcase %}
Run Code Online (Sandbox Code Playgroud)