True and false
Wenn ein nicht-boolescher Datentyp in einem booleschen Kontext verwendet wird (z. B. in einem bedingten Tag), entscheidet Liquid, ob er als true
oder false
ausgewertet wird. Datentypen, die standardmäßig true
zurückgeben, werden truthy genannt. Datentypen, die standardmäßig false
zurückgeben, werden als falsy bezeichnet.
Inhalt
Truthy
Alle Werte in Liquid sind wahrheitsgemäß, außer nil
und false
.
Im folgenden Beispiel ist der Text "Tobi" kein Boolescher Wert, aber er ist wahrheitsgemäß in einer Bedingung:
{% assign name = "Tobi" %} {% if name %} Dieser Text wird immer angezeigt, wenn "name" definiert ist. {% endif %}
Leere Zeichenfolgen sind wahrheitsgemäß. Das folgende Beispiel erzeugt leere HTML-Tags, wenn settings. fp_heading
zwar existiert, aber leer ist:
{% if page.title %} <h1>{{ page.title }}</h1> {% endif %}
<h1></h1>
Um dies zu vermeiden, können Sie wie folgt prüfen, ob die Zeichenfolge blank
lautet:
{% unless settings.fp_heading == blank %} <h1>{{ settings.fp_heading }}</h1> {% endunless %}
Ein EmptyDrop ist ebenfalls wahrheitsgemäß. Wenn im folgenden Beispiel settings. page
eine leere Zeichenkette ist oder auf ein ausgeblendetes oder gelöschtes Objekt gesetzt ist, erhalten Sie einen EmptyDrop. Das Ergebnis ist eine unerwünschte Leere <div>
.
Für diese Eingabe:
{% if pages[settings.page] %} <div> {{ pages[settings.page].content }} </div> {% endif %}
Die Ausgabe ist:
<div></div>
Falsy
Die einzigen Werte, die in Liquid fehlerhaft sind, sind nil
und false
.
nil wird zurückgegeben, wenn ein Liquid-Objekt nichts zurückzugeben hat. Wenn eine Sammlung zum Beispiel kein Sammlungsbild hat, wird collection. image auf nil
gesetzt. Da das "falsy" ist, können Sie dies tun:
{% if collection.image %} <!-- output collection image --> {% endif %}
Der Wert false
wird über viele Eigenschaften des Liquid-Objekts zurückgegeben, z. B. über product. available
.