方便"chained" || (OR) 在液体中的表达
convenient "chained" || (OR) expressions in liquid
在javascript中,我可以这样写
console.log( person.name || person.nickname || '-' )
然后它会先寻找name
字段,如果找不到,它会回退到nickname
字段,如果找不到,它最终将回退到 -
占位符。
是否有任何 nice/convenient 语法可以在液体中执行此操作?也就是说,有没有办法在一行中完成,而不需要一堆 if
/elseifs
.
不,遗憾的是没有。虽然可以在液体逻辑中使用 'or',但不允许在双大括号之间写入 'or'。您将收到以下错误:
Expected end_of_string but found id in "{{ person.name or person.nickname or '-' }}" in /path/to/page
我认为最短的写法是:
{{ person.name }}{% unless person.name %}{{ person.nickname }}{% unless person.nickname %}-{% endunless %}{% endunless %}
在javascript中,我可以这样写
console.log( person.name || person.nickname || '-' )
然后它会先寻找name
字段,如果找不到,它会回退到nickname
字段,如果找不到,它最终将回退到 -
占位符。
是否有任何 nice/convenient 语法可以在液体中执行此操作?也就是说,有没有办法在一行中完成,而不需要一堆 if
/elseifs
.
不,遗憾的是没有。虽然可以在液体逻辑中使用 'or',但不允许在双大括号之间写入 'or'。您将收到以下错误:
Expected end_of_string but found id in "{{ person.name or person.nickname or '-' }}" in /path/to/page
我认为最短的写法是:
{{ person.name }}{% unless person.name %}{{ person.nickname }}{% unless person.nickname %}-{% endunless %}{% endunless %}