0

Can we dynamically add a component multiple times and still retrieve information fired by these similar components uniquely in the parent component? I need to create a filter that shows fields, operator and value to be selected by the user. I will be creating a component for just a row of this kind and user can add / remove multiple filters. Can I collect data from these components uniquely when all these components will be firing the same event?

1 Answer 1

1

For a filtering mechanism, you probably want to apply all the filters, so you'll likely want to read all of them anyways. In addition, you'll probably want to bind the filter data to an attribute anyways. As such, your design would probably look like this:

<aura:attribute name="filters" type="Object[]" default="[]" />

<aura:iteration items="{!v.filters}" var="filter">
  <c:filterRow value="{!filter}" onupdate="{!c.applyFilters}" />
</aura:iteration>

({
  applyFilters: function(component, event, helper) {
    var filters = component.get("v.filters");
    // process filter information
  }
})

This isn't the only way to do this, but it's probably the easiest. Using component.find will only complicate your logic slightly, and other methods are probably less intuitive than this.

3
  • Hi @sfdcfox, I dont have any items to show in the iteration cmp! The user will be adding / removing the filters as he pleases. This is similar to creating a list view (adding fields in the list view filter). Do you mean that on click of "add" I should add a row of the new component in the list? Feb 12, 2018 at 6:38
  • @AdityaSagam Yes, that would be the idea.
    – sfdcfox
    Feb 12, 2018 at 7:12
  • Thats cool! I'll let you know how it goes.. Thanks :) Feb 12, 2018 at 7:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.