Child pages
  • Expansion of Component Options

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The format of an expander object varies slightly depending on the particular expander type, but in general, the object will have some of the following properties:

Name

Description

type

this This is the string name of the expander. Currently, several expanders are provided by the framework, and are described below.

func

Some expanders call user-provided function. In these cases, this property is the string name of the user-provided function.

args

This is an array of arguments to be passed to the user-provided function specified in func.

href

 

options

 

resourceSpecCollector

 

fetchKey

 

Supported Expanders

Two Three expanders are currently provided by the framework, and component creators can specify these expanders in their default options:

...

fluid.deferredInvokeCall

The default expander type if the type property is not supplied. The fluid.deferredInvokeCall expander is essentially the same as fluid.deferredCall, but it will actually perform resolution of the client's demanded name. That is, it will look up the function name in the registered demands to determine what function will actually be called. fluid.deferredInvokeCall is used by default by expanders if no type is specified. For example:

Section
Column
width50%
Code Block
javascript
javascript
fluid.defaults("cspace.specBuilderImpl", {
    urlRenderer: {
        expander: {
            type: "fluid.deferredInvokeCall",
            func: "cspace.urlExpander"
        }
    }  
});
cspace.urlExpander = function (options) {
    ...
    return function (url) {
        ...
    };
};
fluid.demands("cspace.urlExpander", "cspace.test", 
    {
    args: {
        vars: {
            webapp: "../../main/webapp"
        }
    }
});
Column

In this example, the function name cspace.urlExpander will be resolved before being invoked. In a production setting, no arguments will be passed (since none are specified in the expander object. But in a test environment (i.e when "cspace.test" has been registered as an environment), the demands specification be resolved and the specified arguments will be passed to the function.

...