Newer Version Available

This content describes an older version of this product. View Latest

Fire Application Events

Application events follow a traditional publish-subscribe model. An application event is fired from an instance of a component. All components that provide a handler for the event are notified.

Register an Event

A component registers that it may fire an application event by using <aura:registerEvent> in its markup. The name attribute is required but not used for application events. The name attribute is only relevant for component events. This example uses name="appEvent" but the value isn’t used anywhere.

1<aura:registerEvent name="appEvent" type="c:appEvent"/>

Fire an Event

Use $A.get("e.myNamespace:myAppEvent") in JavaScript to get an instance of the myAppEvent event in the myNamespace namespace.

The syntax to get an instance of an application event is different than the syntax to get a component event, which is cmp.getEvent("evtName").

Note

Use fire() to fire the event.

1var appEvent = $A.get("e.c:appEvent");
2// Optional: set some data for the event (also known as event shape)
3// A parameter’s name must match the name attribute
4// of one of the event’s <aura:attribute> tags
5//appEvent.setParams({ "myParam" : myValue });
6appEvent.fire();

Events Fired on App Rendering

Several events are fired when an app is rendering. All init events are fired to indicate the component or app has been initialized. If a component is contained in another component or app, the inner component is initialized first.

If a server call is made during rendering, aura:waiting is fired. When the framework receives a server response, aura:doneWaiting is fired.

Finally, aura:doneRendering is fired when all rendering has been completed.

We don't recommend using the legacy aura:waiting, aura:doneWaiting, and aura:doneRendering application events except as a last resort. The aura:waiting and aura:doneWaiting application events are fired for every batched server request, even for requests from other components in your app. Unless your component is running in complete isolation in a standalone app and not included in Lightning Experience or the Salesforce app, you probably don’t want to handle these application events. The container app may fire server-side actions and trigger your event handlers multiple times.

Note

For more information, see Events Fired During the Rendering Lifecycle.