液体有"or if blank?"型过滤器吗?
Does liquid have an "or if blank?"-type filter?
我正在尝试做这样的事情:
<a href="...&user_name={{customer.name}}&...">Click me.</a>
但有时 customer.name
可能是空白的。不是 null
,而是 Ruby 的 blank?
版本(例如,一个空字符串 ""
)。在那种情况下,我想使用 customer.email
.
在理想情况下,液体会有一个 or_if_blank
过滤器来执行以下操作:
<a href="...&user_name={{customer.name | or_if_blank: customer.email }}...">Click me.</a>
但事实并非如此。有什么简单的方法来破解这个吗?我对液体还很陌生,所以即使我已经倾倒了 these docs 15 分钟,答案可能就在眼前。
顺便说一句,我知道我可以通过更改我传递给 Liquid 的 customer
对象的结构来解决这个问题,但不幸的是我不能很容易地做到这一点,所以我希望在这里找个轻松的地方。
您可以使用以下格式根据 customer.name 的值更改 html:
{% if customer.name %}
<a href="...&user_name={{customer.name}}&...">Click me.</a>
{% else%}
<a href="...&user_name={{customer.email}}&...">Click me.</a>
{% endif %}
您可以在此处阅读有关 if 语句的更多信息:https://github.com/Shopify/liquid/wiki/Liquid-for-Designers#if--else
您可以使用 default
过滤器:
<a href="...&user_name={{customer.name | default: customer.email }}...">Click me.</a>
我正在尝试做这样的事情:
<a href="...&user_name={{customer.name}}&...">Click me.</a>
但有时 customer.name
可能是空白的。不是 null
,而是 Ruby 的 blank?
版本(例如,一个空字符串 ""
)。在那种情况下,我想使用 customer.email
.
在理想情况下,液体会有一个 or_if_blank
过滤器来执行以下操作:
<a href="...&user_name={{customer.name | or_if_blank: customer.email }}...">Click me.</a>
但事实并非如此。有什么简单的方法来破解这个吗?我对液体还很陌生,所以即使我已经倾倒了 these docs 15 分钟,答案可能就在眼前。
顺便说一句,我知道我可以通过更改我传递给 Liquid 的 customer
对象的结构来解决这个问题,但不幸的是我不能很容易地做到这一点,所以我希望在这里找个轻松的地方。
您可以使用以下格式根据 customer.name 的值更改 html:
{% if customer.name %}
<a href="...&user_name={{customer.name}}&...">Click me.</a>
{% else%}
<a href="...&user_name={{customer.email}}&...">Click me.</a>
{% endif %}
您可以在此处阅读有关 if 语句的更多信息:https://github.com/Shopify/liquid/wiki/Liquid-for-Designers#if--else
您可以使用 default
过滤器:
<a href="...&user_name={{customer.name | default: customer.email }}...">Click me.</a>