I want to get data from child component in parent component, child component is present inside inside auar:iteration in parent component and elements are rendered in child component using aura:if. I have provided aura:id to the child component(inputComp) and also to elements in child component(input). I am trying to get data using component.find("inputComp")[i].find("input").get("v.value"); but it's giving following error
Action failed: c:dynamicSurvey$controller$saveData [component.find(...)[i].find(...).get is not a function] Failing descriptor: {c:dynamicSurvey$controller$saveData}
Parent component
<div class="slds-box slds-theme_default">
<aura:iteration items="{!v.configurations}" var="config" indexVar="index">
<c:inputComponent survey="{!v.survey}" configuration="{!config}" picklistMap1="{!v.picklistMap}" aura:id="inputComp" index="{!index}"/>
</aura:iteration>
</div>
<div class="slds-form-element__control">
<div class="slds-clearfix">
<div class="slds-float_left slds-p-top_x-small slds-p-bottom_x-small">
<div class="slds-align_absolute-center"><span class="red">{!v.fhiErrorMessage}</span></div>
</div>
<div class="slds-float_right slds-p-top_x-small slds-p-bottom_x-small">
<lightning:button class="slds-button slds-button_neutral" onclick="{!c.saveData}" label="Save" />
</div>
</div>
</div>
Parent component Controller
saveData : function(component, event, helper){
var configurations = component.get("v.configurations");
//console.log(configurations);
for(var i=0; i<configurations.length; i++){
var input = component.find(inputComp)[i].find("input").get("v.value");
console.log(input);
}
}
Inner Component
<aura:if isTrue="{!v.configuration.Data_Type__c=='text'}">
<div class="slds-form-element__control slds-m-top_xx-small slds-m-bottom_xx-small slds-p-bottom_small">
<ui:inputText label="{!v.configuration.Field_Label__c}" class="slds-input " value="" aura:id="input"/>
</div>
</aura:if>
<aura:if isTrue="{!v.configuration.Data_Type__c=='number'}">
<div class="slds-form-element__control slds-m-top_xx-small slds-m-bottom_xx-small slds-p-bottom_small">
<ui:inputNumber label="{!v.configuration.Field_Label__c}" class="slds-input " value="" aura:id="input"/>
</div>
</aura:if>
<aura:if isTrue="{!v.configuration.Data_Type__c=='textarea'}">
<div class="slds-form-element__control slds-m-top_xx-small slds-m-bottom_xx-small slds-p-bottom_small">
<ui:inputTextArea label="{!v.configuration.Field_Label__c}" class="slds-input " value="" aura:id="input"/>
</div>
</aura:if>
<aura:if isTrue="{!v.configuration.Data_Type__c=='picklist'}">
<div class="slds-form-element__control slds-m-top_xx-small slds-m-bottom_xx-small slds-p-bottom_small">
<ui:inputSelect label="{!v.configuration.Field_Label__c}" class="slds-input" >
<aura:iteration items="{!v.picklistOptions}" var="level">
<ui:inputSelectOption text="{!level}" label="{!level}" aura:id="input"/>
</aura:iteration>
</ui:inputSelect>
</div>
</aura:if>