Regeln innerhalb von Datensätzen
self.siblings
)
Lokale Adressierung von Blöcken (Üblicherweise können alle Blöcke mittels Punktnotation über blocks.slug
adressiert werden. Innerhalb von Datensätzen funktioniert die Adressierung von Blöcken konzeptionell anders. Hintergrund ist die logische Dopplung eines jeden Blocks pro Datensatz. Im folgenden Beispiel ist für *jede “*Vorherige Versicherung” der Block “Name der Versicherung” vorhanden. Der bekannte Weg über blocks.insurance_name würde also die Frage aufwerfen, der Name welcher vorherigen Versicherung denn nun zurückgegeben werden würde.
Um dieses Problemfeld zu umgehen, sind Blöcke innerhalb von Datensätzen nicht über blocks.slug
erreichbar. Um von außen auf diese Blöcke zuzugreifen, wird mit blocks.datensatz.rows gearbeitet (Gegenstand eines anderen Artikels).
An dieser Stelle soll es Sichtbarkeitsregeln innerhalb von Datensätzen gehen — d.h. die Eingaben innerhalb eines Datensatzes wirken sich auf die Sichtbarkeit von Blöcken innerhalb des gleichen Datensatz-Eintrags aus.
Um lokal begrenzt — innerhalb eines Datensatz-Eintrags — auf die “Geschwister” eines Blocks zuzugreifen, muss die self.siblings
-Notation verwendet werden. Hierüber sind alle Blöcke innerhalb eines Datensatz-Eintrags genau so erreichbar wie normalerweise alle Blöcke über blocks.slug
.
Beispiel:
💡 Das Feld Unterlagen soll nur angezeigt werden, wenn Nein ausgewählt wurde.
Beispiel-Code:
self.siblings.documents_present.options.documents_present_true.selected
Erklärung:
Über self
erhält man Zugriff auf den aktuellen (lokalen) Eintrag des Datensatzes. Innerhalb von self.siblings
sind die Blöcke unter ihrem jeweiligen slug im Schema self.siblings.slug
— also beispielsweise self.siblings.documents_present
— erreichbar.
Der Code self.siblings.documents_present.options.documents_present_true.selected
liefert also genau dann true
zurück (und schaltet damit den mit der Sichtbarkeitsregel belegten Block auf sichtbar), wenn die Option documents_present_true
aus der Auswahl documents_present
im jeweiligen Datensatz-Eintrag gerade ausgewählt ist.
Hier Regel kopieren:
self.siblings.[Slug Radio Block].options.[Slug Radio Option].selected