New in v1.4

Sometimes, you may need to make sure that something in a parent component is fully in place before a subcomponent is instantiated: perhaps data needs to be fetched from an external source before a subcomponent can work with it, or a template needs to be rendered before the subcomponent can bind events to elements.

The createOnEvent allows you to specify an event to trigger the creation of a subcomponent: If this option is specified, the IoC system will wait until the parent component fires the named event before creating the subcomponent.

Using createOnEvent in the parent's defaults

createOnEvent can be specified as part of a subcomponent's definition in the parent's components block, as shown in the example below:

fluid.defaults("fluid.uiOptions.preview", {
    ...
    events: {
        onReady: null,
        ...
    },
    components: {
        enhancer: {
            type: "fluid.uiEnhancer",
            createOnEvent: "onReady",
            options: {
                ...
            }
        ...
    }
};

In this example, a component called fluid.uiOptions.preview is declaring a subcomponent called enhancer. The enhancer subcomponent must wait until the parent component has been fully initialized before it is created, so createOnEvent is used to specify the "onReady" event. The IoC framework will wait until the parent component (fluid.uiOptions.preview) fires its onReady event before instantiating the enhancer subcomponent.