Infusion component options, as written in fluid.defaults
blocks, go through a process called expansion when they are used to instantiate a component. Two kinds of expansion happen during this process -
"{context}.path"
as a result of the Value Resolution process, andexpander
The standard use of an expander is to designate a function to be called when instantiating the component options, which produces a value based on processing the expander arguments. This can be useful when static definition of a default option is not possible.
Expanders are specified using the keyword "expander"
in the component defaults:
fluid.defaults("component.name", { optionName: { expander: { ... } } }); |
The basic form of an expander record is very similar to that of an Invoker - it contains entries func
/funcName
together with args
to designate the function call which will produce the required options values.
Name | Description |
---|---|
| Either an IoC reference to a function (an invoker or other function member) or else a global function name holding the function to be invoked |
| An array of arguments (or single argument) to be passed to the user-provided function specified in |
This example locates the global function named "cspace.search.modelFilter"
and calls it with the arguments given by resolving the context "{searchView}"
- in this case, most likely the top-level component defined in defaults itself. The return value from this function is then placed in the options of the instantiated component (the "fluid.pager"
) at the path modelFilter
:
|
fluid.noexpand
expanderThe fluid.noexpand
expander is a very specialised expander that normal users of the framework should not require to use. It has been retained in the framework for completeness, but its effects should normally be obtained using a mergePolicy of "noexpand"
. This expander simply dumps its literal argument (held at a path named value
or tree
) into the component's options without expansion.
Name | Description |
---|---|
type | "fluid.noexpand" (the type field must hold this literal value) |
| This property holds some literal component configuration (either a primitive value or larger tree of JSON values) which will be inserted without expansion into the component options |
|