1. Component Event is designed w.r.to DOM events.
2. Difference between Owner(Parent) component, Container component & child component.
<!--
c:parentCmp
--
>
<aura:component
>
<
c:containerCmp
>
<
c:eventEmitterCmp
>
</
c:containerCmp
>
</aura:component
>
3. By Default, component events will not bubble to the container component. If we want then we have to write like below in the container component.
<!--
c:containerCmp
--
>
<aura:component
>
<aura:handler
name=
"cmpEvent"
event=
"c:cmpEvent"
action=
"{!c.handleCmpEvent}"
includeFacets=
"true"
/
>
{!v.body}
</aura:component
>
4. By default, the component works in a "bubble" phase, if we want to make it work in the "Capture" phase then we have to explicitly mention it.
5. When the component event is fired in the parent component, we can do
a. pause the event( in the parent controller).
b. resume the event( on apex controller Success Response).
a. pause the event( in the parent controller).
b. resume the event( on apex controller Success Response).
c. stop propagation (on apex controller Error Response)
handleCmpEvent : function(component, event, helper) {
// Pause event propagation
event.pause();
// Call an asynchronous server-side action
var action
=
component.
get
(
"c.someServerFunction"
);
action.setCallback(
this
, function(response) {
var state
=
response.getState();
if
(state
=
==
"SUCCESS"
) {
// Resume event propagation if action succeeded
event.resume();
}
else
if
(state
=
==
"ERROR"
) {
// Stop event propagation if action failed
event.stopPropagation();
}
});
$A.enqueueAction(action);
}
Please read this article for more details : ClickHere
Comments
Post a Comment