with
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.
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. |
Return value
The return of the transferred expression (parameter expression).
Example
The following data of an element container with element id 5 is given:
{
"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.