液体:如何将运算符的输出分配给变量?

问题描述 投票:0回答:1

我正在使用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 %}

此方法有效(为了进行测试,我将“ 12”更改为当月),但是非常难看。在大多数语言中,我会这样做:

{% assign isDecember = (month == "12") %}

液体不接受括号,因此显然这是行不通的。而且没有括号也不行。该文档提供了using operatorsassigning static values to variables的示例,但没有关于将两者结合的示例。

我可以将|过滤器的输出分配给变量,但是似乎没有覆盖所有运算符的过滤器(甚至是必要的“ ==”),因此不尽人意。

是否可以将操作员的输出分配给Liquid中的变量?

operators variable-assignment liquid assign assignment-operator
1个回答
0
投票

[没有办法优雅地执行,并且根据this,他们将不支持三元运算符。提到有人尝试类似的事情。

稍短/不同的版本是:

{% assign month = 'now' | date: "%m" %}
{% liquid
case month
when '12'
  assign isDecember = true
else
  assign isDecember = false
endcase %}
© www.soinside.com 2019 - 2024. All rights reserved.