The $with function changes the value of the constant $input to the passed object (parameter host). This change is only valid within the transferred expression (parameter expression).
This is needed to change the data context for a partial expression without having to retrieve the same data again and again.
Tooltip
Syntax: $with(host,expression)
Parameter
Description
hostThe value which the constant $input should take for the execution of the passed (expression).
expressionA calculation expression whose input value ($input) is the object passed as 'host'.
The return of the transferred expression (parameter expression).
Example: $with($get($el(5),code.state),$ifNotEmpty($input,$input,))
Syntax
$with(host,expression)
Parameter
Name | Description |
|---|---|
host | The value which the constant $input should take for the execution of the passed expression. |
expression | The path to a data field. As always, path parts are separated by points (periods/full stops). e.g. 'datenFeldLevel1.datenFeldLevel2'. List entries can be accessed via the index (starting at 0) as a data field. e.g. 'datenFeldDerListe.3' → accesses the fourth element of a list. |
Return value
The return of the transferred expression (parameter expression).
Example
The following data of an element container with element id 5 is given:
Example host object in JSON format:
{
"person": {
"name": "Robert Weber",
"age": "32",
"tasks": [
"IT lead",
"3rd Level Support",
"Software Customizing"
]
}
}The object shown above can be read using the el (Read element data) function. As a result of the expression, both the name of the person and their primary task (first element of tasks) should be returned.
// Expression using $with $with($get($el(5),person),{name} - {tasks[0]}) // Expression without $with - $el(5) has to be accessed over and over again $get($el(5),person.name) - $get($el(5),person.tasks[0]) |
The result of the example for the object shown above is: 'Robert Weber – IT Manager'.
Special case for the parameter evaluation of $with
Parameters that are listed after the first one are combined to one expression. Thus, the following is also possible (see example above).
$with($get($el(5),person),{name}, {tasks[0]}) |
Results: 'Robert Weber, IT Manager'
The comma was included in the expression to be executed instead of evaluating a third parameter.