1

I have this below code where i am trying to first search an account name and on hit button it displays the result set which is currently working for me.

Now i have an tag on the records displayed. On click of the record i need to write in debug console.

Can anyone let me know how i can do it. In the below code i am trying , but i am not getting it.

Component -

<aura:component controller="SimpleAccountController">
    <aura:attribute name="account" type="account[]"/>
    <ui:outputText aura:id="outName" value="" class="text"/>
    <ui:inputText aura:id="name" label="Enter Name:" placeholder="Your Name" />
    <ui:button aura:id="button" buttonTitle="Click to see what you put into the field" class="button" label="Click me" press="{!c.getInput}"/>
    <aura:iteration var="acc" items="{!v.account}">
            <a onclick="{!c.accountselected}" data-recId="{!acc.Id}">
        <p>{!acc.Name} : {!acc.Type} : {!acc.Industry} : {!acc.Rating}</p>
            </a>
    </aura:iteration>
</aura:component>

Controller -

({
    getInput : function(cmp, evt) {
        var myName = cmp.find("name").get("v.value");
        var myText = cmp.find("outName");
        var greet = "Hi, " + myName;
        myText.set("v.value", greet);
        var action = cmp.get("c.seaAcc");
        action.setParams({ "s" : myName });
        action.setCallback(this, function(response) {
            var state = response.getState();
            if (state === "SUCCESS") {
                cmp.set("v.account", response.getReturnValue());
                //alert("From server: " + response.getReturnValue());
            }
        });
        $A.enqueueAction(action);
    },

    accountselected : function(cmp, evt) {
       console.log(evt.target.getAttribute("data-recId")) ;
    }

})

2 Answers 2

2

event.currentTarget => points to the element which registered and called the click event's function (i.e ). So doing event.currentTarget.getAttribute("data-recId") will return the required id.

Please use event.currentTarget.getAttribute("data-recId").

0

You can do it like this

Iteration in Component:

<aura:iteration var="acc" items="{!v.account}">
                <a onclick="{!c.accountselected}" data-value="{!acc.Id}">
            <p>{!acc.Name} : {!acc.Type} : {!acc.Industry} : {!acc.Rating}</p>
                </a>
</aura:iteration>

Controller:

accountselected : function(cmp, evt) {
       var ctarget = event.currentTarget;
        var id_str = ctarget.dataset.value;
        console.log(id_str);
    }
2
  • So just for my knowledge i want to know.. We can create a child component and achieve this above scenario also... Commented Oct 25, 2017 at 11:26
  • If you want to pass the selected account id to child component then yes you can do it Commented Oct 25, 2017 at 11:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .