Introduction
============
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.
Example
========
Child Component:
<
aura:component
>
<
aura:method
name
=
"childAuraMethod"
action
=
"{!c.getChildMessage}"
access
=
"public"
>
<
aura:attribute
name
=
"childParam1"
type
=
"String"
default
=
"My Blog"
/>
<
aura:attribute
name
=
"childParam2"
type
=
"String"
default
=
"Name Is"
/>
</
aura:method
>
</
aura:component
>
Child Component JS Controller:
({
getChildMessage: function(component, event) {
//get method paramaters
var params = event.getParam(
'arguments'
);
if
(params) {
var param1 = params.childParam1;
var param2 = params.childParam1;
alert(param1 +
" "
+ param2);
}
}
})
ParentComponent
In the parent component, child component is added and button for calling parent component controller method.
<!--Parent cmp-->
<
aura:component
>
<
div
class
=
"slds-m-around_xx-large"
>
<!-- Add Child Component -->
<
c:ChildComponent
aura:id
=
"childCmp"
/>
<!-- On button click child aura:method will be called-->
<
lightning:button
variant
=
"brand"
label
=
"Call Child"
onclick
=
"{!c.callChilDMethod}"
/>
</
div
>
</
aura:component
>
ParentComponentController
({
callChilDMethod: function(component, event, helper) {
//Call Child aura method
var childComponent = component.find(
"childCmp"
);
var message = childComponent.childAuraMethod();
}
})
Using App for testing
1 2 3 | < aura:application extends = "force:slds" > < c:ParentComponent /> </ aura:application > |
Happy Coding Sharing Is caring. 😀😀😀
Post a Comment