Hey guys, today in this post we are going to learn about how to communicate between two custom component using application event.
Real time scenarios:- Create an event in Salesforce lightning, and Checked the Value of Checkbox from parent component to child component on click button in Lightning Component using Application event.
Files we used in this post example:-
eventApp1.app | Lightning Application | It is used for call the component to preview on browser. |
eventRegisterCmp1.cmp |
Lightning Component | It is a parent component and hold a click button. |
eventRegisterCmp1Controller.js |
JavaScript Controller File | It is used for click function for Checkbox Checked the Value. |
eventHandlerCmp1.cmp | Lightning Component | It is a child component of eventRegisterCmp1.cmp, It is hold checkbox input. |
eventHandlerCmp1Controller.js | JavaScript Controller File | It is fire automatically and get the value of event from parent component and set value of attribute. |
repCheckboxEvent.evt | Lightning Event | Creat a application event, hold a boolean type attribute that default value is false. |
Live Demo
Other related post that would you like to learn in LWC
Step 1:- Create Lightning Application : eventApp1.app
From Developer Console >> File >> New >> Lightning Application
eventApp1.app [Component Application File]
1 2 3 |
<aura:application extends="force:slds"> <c:eventRegisterCmp1/> </aura:application> |
Step 2:- Create Lightning Component : eventRegisterCmp1.cmp
From Developer Console >> File >> New >> Lightning Component
eventRegisterCmp1.cmp [Lightning Component File]
1 2 3 4 5 6 7 8 9 10 |
<aura:component > <aura:registerEvent name="repCheck" type="c:repCheckboxEvent"/> <div class="slds slds-p-around--medium"> <button class="slds-button slds-button--brand" onclick="{!c.checkVal}"> checkValue </button> <br/><br/> <c:eventHandlerCmp1/> </div> </aura:component> |
Step 3:- Create Lightning Component : eventRegisterCmp1Controller.js
From Developer Console >> File >> New >> Lightning Component >> JavaScript Controller
eventRegisterCmp1Controller.js [JavaScript Controller]
1 2 3 4 5 6 7 8 9 10 11 |
({ checkVal : function(component, event, helper) { var repCheck = $A.get("e.c:repCheckboxEvent"); repCheck.setParams({ "selfCheckValue":true }); repCheck.fire(); } }) |
Step 4:- Create Lightning Component : eventHandlerCmp1.cmp
From Developer Console >> File >> New >> Lightning Component
eventHandlerCmp1.cmp [Lightning Component File]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<aura:component> <aura:handler event="c:repCheckboxEvent" action="{!c.repCheckEnable}"/> <aura:attribute name="selfChildDeal" type="Boolean"/> <div class="slds slda-p-around--medium"> <div class="slds-form-element__control"> <label class="slds-checkbox"> <ui:inputCheckbox aura:id="repCheckId" value="{!v.selfChildDeal}" /> <span class="slds-checkbox--faux"></span> <span class="slds-form-element__label slds-m-left--x-small" style="font-size: 0.75rem;"> Self Representative </span> </label> </div> <br/> </div> </aura:component> |
Step 5:- Create Lightning Component : eventHandlerCmp1Controller.js
From Developer Console >> File >> New >> Lightning Component >> JavaScript Controller
eventHandlerCmp1Controller.js [JavaScript Controller]
1 2 3 4 5 6 7 8 |
({ repCheckEnable : function(component, event, helper) { var selfCheckValue1 = event.getParam("selfCheckValue"); component.set("v.selfChildDeal", selfCheckValue1); //alert('selfCheckValue ' + selfCheckValue); } }) |
Step 6:- Lightning Event : repCheckboxEvent.evt
From Developer Console >> File >> New >> Lightning Event
repCheckboxEvent.evt [Lightning Component File]
1 2 3 |
<aura:event type="Application" description="Event template" access="global"> <aura:attribute name="selfCheckValue" type="Boolean" default="false"/> </aura:event> |
Further post that would you like to learn
You’re a beautiful inspiration. It really helps me in any situation. Where I stuck. Many of my friends told me to comment there post but I stuck what I should comment. Finally I got your post it always help me. Thanks for the lovely post.