with
Die $with Funktion ändert den Wert der Konstanten $input zum übergebenen Objekt (Parameter host). Diese Änderung ist ausschließlich innerhalb des übergebenen Ausdrucks (Parameter expression) gültig.
Dies wird benötigt, um den Datenkontext für einen Teilausdruck zu ändern, ohne immer wieder die gleichen Daten beschaffen zu müssen.
Syntax
$with(host,expression)
Parameter
Name |
Beschreibung |
host |
Der Wert welchen die Konstante $input, für die Ausführung des übergebenen Ausdrucks, annehmen soll. |
expression |
Ein Berechnungsausdruck dessen Eingabewert ($input) das als "host" übergebene Objekt ist |
Rückgabewert
Die Rückgabe des übergebenen Ausdrucks (Parameter expression).
Beispiel
Gegeben seien folgende Daten eines Elementcontainers mit der Element-ID 5:
{
"person"
: {
"name"
:
"Robert Weber"
,
"age"
:
"32"
,
"tasks"
: [
"IT Leiter"
,
"3rd Level Support"
,
"Software Customizing"
]
}
}
Das oben gezeigte Objekt kann entsprechend über die Funktion el (Elementdaten lesen) gelesen werden. Als Ergebnis des Ausdrucks soll sowohl der Name der Person als auch deren primäre Aufgabe (erstes Element von tasks) ausgegeben werden.
// Ausdruck mit $with
$with($get($el(5),person),{name} - {tasks[0]})
// Ausdruck ohne $with - Es muss immer wieder mit $get() auf das Element 5 zugegriffen werden
$get($el(5),person.name) - $get($el(5),person.tasks[0])
Ergebnis des Beispiels für das oben gezeigte Objekt: "Robert Weber - IT Leiter"
Sonderfall für die Parameterauswertung von $with
Parameter, welche nach dem ersten aufgelistet werden, werden zu einem Ausdruck zusammengefasst. Somit ist auch nachfolgendes möglich (vgl. Beispiel oben).
$with($get($el(5),person),{name}, {tasks[0]})
Ergibt: "Robert Weber, IT Leiter"
Das Komma wurde in den auszuführenden Ausdruck mit aufgenommen anstatt einen dritten Parameter auszuwerten.