Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Include Page
Infusion14:sneak peek warningInfusion14:
sneak peek warning

Registers a specification for resolving the invocation of a particular function name in a given context.


{section}
{column:width=70%}
Registers a specification for resolving the invocation of a particular function name in a given context.
{code:javascript|borderStyle=none|bgColor=white}
fluid.demands(functionName, context, demandsSpec/argsArray);
{code}
*File name:* {{FluidIoC.js

Parameters

}}

h2. Parameters

{span:class=borderless-table}
| {{{*}functionName{*}}} | (String) the name of the function demand which this specification matches. |
| {{{*}context{*}}} | (String or Array of Strings) the name(s) of the context(s) in which this demand specification applies. See [#Contexts] below for more information. |
| {{{*}demandsSpec/argsArray{*}}} | (Object)/(Array) the actual demands specification to be applied in the case this rule matches. If the functionName does not require to be replaced by another, it is sufficient just to list an Array of the replacement arguments. Otherwise, this argument can be a full [#Demands
Specification

Return Value

Div
class
Wiki Markup
{div:class=api-page
}

h1. fluid.demands()
Section
Column
width70%
Code Block
javascriptjavascript
bgColorwhite
borderStylenone
Span
classborderless-table

functionName

(String) the name of the function demand which this specification matches.

context

(String or Array of Strings) the name(s) of the context(s) in which this demand specification applies. See #Contexts below for more information.

demandsSpec/argsArray

Span
classborderless-table

None

 

Column
width5%
Column

See Also

Notes

Contexts

Insert excerptInfusion14:ContextsInfusion14:Contextsnopaneltrue The context parameter to fluid.demands specifies a name for particular context in which the supplied demands are intended to be valid.

For more detailed information about contexts, see Contexts.

Demands Specification

The third parameter to fluid.demands(), spec, is the demands specification that declares how the function invocation is to be disposed, in the case that the overall block matches. This parameter can take one of several possible forms:

Span
classborderless-table
Code Blockjavascriptjavascript
 Specification] |
{span}

h2. Return Value
{span:class=borderless-table}
| *None* | |
{span}
{column}

{column:width=5%}
{column}

{column}

h3. See Also

* [fluid.initDependents]
* [fluid.defaults]
* [Demands Specifications]
* [API]
{column}
{section}
----
h3. Notes

h4. Contexts

{excerpt-include:Contexts|nopanel=true}  The {{context}} parameter to {{fluid.demands}} specifies a name for particular context in which the supplied demands are intended to be valid.

For more detailed information about contexts, see [Contexts].
h4. Demands Specification

The third parameter to {{fluid.demands()}}, {{{*}spec{*}}}, is the demands specification that declares how the function invocation is to be disposed, in the case that the overall block matches. This parameter can take one of several possible forms:

{span:class=borderless-table}
| {code:javascript}
{
    funcName: "functionName",
    args: [array of arguments]
}
The array of arguments can contain references to any
{code} | The array of arguments can contain references to any value-resolved material, as may also appear in {{fluid.defaults
blocks

Example

Code Blockjavascriptjavascript
}} blocks |
{span}

h3. Example
{code:javascript}
fluid.demands(
    "my.component",
    "my.application",
    {
        funcName: "my.componentImpl",
        args: ["{application}.model", "{application}.options.strings"],
    });
{code}
In this example, the component {{my.component}} is specifying its requirements when used in the context of {{my.application}}. The request is that the component be instantiated using a function called {{my.componentImpl}}, passed the {{args}} array as a parameter.


When the IoC system fulfills the demands, the {{model}} property and the {{options.strings}} property of the {{my.application}} object will be retrieved and inserted in the {{args}} array before the function is called.
{div}