global
Synopsis
or
or
Where:
- name: name of the variable. It is not expression. However, it can be written as a string literal, which is useful if the variable name contains reserved characters, for example
<#global "foo-bar" = 1>
. Note that this string literal does not expand interpolations (as"${foo}"
). =
: Assignment operator, which can also be one of the shorthand assignment operators (++
,+=
, etc.), just like with theassign
directive,- value: the value to store. Expression.
Description
This directive is similar to assign
, but the variable created will be visible in all namespaces, and will not be inside any namespace. Exactly as if you would create (or replace) a variable of the data-model. Hence, the variable is global. If a variable with the same name already exists in the data-model, it will be hidden by the variable created with this directive. If a variable with the same name already exists in the current namespace, that will hide the variable created with global
directive.
For example, with <#global x = 1>
you create a variable that is visible as x
in all namespaces, unless another variable called x
hides it (for example a variable what you have created as <#assign x = 2>
). In this case, you can use special variable globals
, like ${.globals.x}
. Note that with globals you see all globally accessible variables; not only the variables that were created with global
directive, but also the variables of the data-model.