2017-04-03 3 views
0

Ich versuche, Ereignisdelegierung zu implementieren, aber ich kann keinen Weg finden, um die lokale Variable von ngFor zum übergeordneten übergeben.Angular 2 übergeben lokale Variable ngFor zu einem Elternteil

<ul (click)="doSomething(hero)"> 
    <li *ngFor="let hero of data">{{hero.name}}</li> 
    </ul> 

Nach der Veranstaltung Delegation Technik, muß ich auf dem Elternteil klicken und überprüfen, ob das Ziel ist es, was ich brauche und den Hörer führen.

Ist es möglich, dies zu tun?

+1

nicht klar, was Sie –

+0

Event-Delegation erreichen will. – ng2user

+0

Wenn Sie nach einem Klick-Ereignis für jedes "li" -Element fragen, können Sie einfach

  • {{held.name} }
  • und dann in Ihrer doSomething Funktion erhalten Sie den "Helden", den Sie geklickt haben – Lys

    Antwort

    0

    Dies sollte

    export class YourComponent { 
     
        data = ['a', 'b']; 
     
    
     
        doSomething($event: any) { 
     
         //$event.data is 'a' 
     
        } 
     
    }
    <ul (click)="doSomething($event)"> 
     
         <li *ngFor="let hero of data" (click)="$event.data = hero;">{{hero}}</li> 
     
        </ul>
    arbeiten

    +0

    Sie fügen immer noch ein Klickereignis zu den LI-Elementen hinzu, also ist es nichts wert, aber danke. – ng2user

    +0

    Richtig, weil 'Held' eine lokale Variable ist und es nichts mit diesem Ereignis zu tun hat, sollten Sie es an das Ereignis anhängen. @ ng2user Halten Sie diese Antwort für richtig? – karser