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.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.