Можно ли попытаться отобразить переменную и использовать запасной вариант, если она ложная?
Я пробовал следующее без везения:
<img src="{{ fields.icon.url || post.thumbnail.src }}" />
<img src="{{ fields.icon.url or post.thumbnail.src }}" />
Можно ли попытаться отобразить переменную и использовать запасной вариант, если она ложная?
Я пробовал следующее без везения:
<img src="{{ fields.icon.url || post.thumbnail.src }}" />
<img src="{{ fields.icon.url or post.thumbnail.src }}" />
Использование or
приведет к тому, что результирующий вывод станет логическим значением 1
или 0
.
Вместо этого вы можете использовать фильтр default
.
Фильтр
default
возвращает переданное значение по умолчанию, если значение равноundefined
илиempty
, иначе значение переменной:
<img src="{{ fields.icon.url|default(post.thumbnail.src) }}" />
В качестве альтернативы вы также можете использовать троичные операторы ?:
или нулевой объединяющий оператор ??
.
Тернарный оператор ?:
эквивалентен is not empty
.
Оператор объединения с нулевым значением будет работать, только если ведущая переменная равна undefined
, null
и эквивалентна is same as(null)
.
<img src="{{ fields.icon.url ?: post.thumbnail.src }}" />
<img src="{{ fields.icon.url ?? post.thumbnail.src }}" />
{% set icon = fields.icon.url is not empty ? fields.icon.url : post.thumbnail.src %}
- person Jonny   schedule 17.01.2020