关于这个问题.
当a == true和b == false时你怎么办?这必须是在投票之前相信与否,但没有什么可以找到的.
所以:
{% if a == true and b == false %}
do stuff
{% endif %}
Run Code Online (Sandbox Code Playgroud)
你应该说这应该有效,但事实并非如此:
{% if (a == true) and (b == false) %}
do stuff
{% endif %}
Run Code Online (Sandbox Code Playgroud)
UPDATE2这有效,因为一个是真的,两个是假的
{% if variant.stock.track == true %}
{% if variant.stock.on_stock == false %}
({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}
{% endif %}
Run Code Online (Sandbox Code Playgroud)
通常在验证我使用时sameas.在你的情况下:
{% if a and b is sameas(false) %}
Run Code Online (Sandbox Code Playgroud)
但是文档暗示你也可以使用速记如下:
{% if a and b == false %}
Run Code Online (Sandbox Code Playgroud)
请注意,此检查取决于所设置的变量.如果未设置变量,则检查true或false将失败,因为变量将具有该值null.
因此,如果您想要检查true或false,并希望确保如果没有设置值,则会得到错误; 你可能会用default:
{% if a and b|default(false) is sameas(false) %}
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢php风格:
{% if a and b|default(false) == false %}
Run Code Online (Sandbox Code Playgroud)
这也应该有效:
{% if variant.stock.track and variant.stock.on_stock|default(false) is sameas(false) %}
({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}
Run Code Online (Sandbox Code Playgroud)
要么
{% if variant.stock.track and variant.stock.on_stock|default(false) == false %}
({{ 'Out of stock' | t }}){% else %} ({{ 'In stock' | t }})
{% endif %}
Run Code Online (Sandbox Code Playgroud)