AURA Method

Salesforce Lightning Aura Method

AURA

aura:method 

Use aura:method to define a method as part of a component’s API. This enables you to directly call a method in a component’s client-side controller instead of firing and handling a component event. Using aura:method simplifies the code needed for a parent component to call a method on a child component that it contains. link

ChildComp:-

<aura:method name="testMethod" action="{!c.someAction}" description="Test aura method with test parameter">

    <aura:attribute name="Test1" type="String" />  <!--optional parameter-->

</aura:method>

Note:-

  • Aura method can have an optional parameters. We use <aura:attribute> tag in Aura:method to declare parameter.
  • We do not need access system attribute in <aura:attribute> tag.

How to call aura:method from parent controller:

ParentComp:-

<aura:component>
    <aura:attribute name="parentAttributeName" type="String" default="Parent Value"/>
    <p>
       {!v.parentAttributeName}
   </p>

    <c:ChildComp aura:id="ChildComp" />    <!-- Giving id to child comp-->

    <lightning:button label="Go to aura method" onclick="{!c.gotoAuraMethod}"/>

</aura:component>

ParentCompController.js

({
 gotoAuraMethod : function(component, event, helper) {     
        var chldComp=component.find("ChildComp");  //  Finding child component
        var res=chldComp.testMethod("From parent");  //   Hitting aura method
        component.set("v.parentAttributeName",res);      
     
 }
})

ChildComp:

<aura:component>

<aura:method name="testMethod" action="{!c.someAction}"  description="Test aura method with test parameter">
    <aura:attribute name="childAttributeName" type="String" />
</aura:method>

</aura:component>

ChildCompController.js:

({
 someAction : function(component, event, helper) {
               
     var params=event.getParam('arguments');
        if(params)
        {
           var param1=params.childAttributeName;
         
        }
       return param1+"Appended child value";
 }
})

Application:

<aura:application extends="force:slds" >
    <c:ParentComp/>
</aura:application>

link

Leave a Reply