angular - kalla på funktion för varje rad i *ngFor angular2


Jag måste visa en tabell och kalla på en funktion för varje rad i tabellen, och funktionen kallas en gång per rad.

<tr *ngFor="let item of mf.data"  >
          <td >
            <button (click)="remove(item)" class="btn btn-danger">x</button>
          </td>
          <td>{{item.name}}</td>
          <td>{{item.email}}</td>
          <td class="text-right">{{item.age}}</td>
          <td>{{item.city | uppercase}}</td>
        </tr>

Var snäll och föreslå hur jag ska implementera denna funktionalitet??

Svar #1

Du kan lägga till en direktiv

@Directive({ selector: '[invoke]'})
class InvokeDirective {
  @Output() invoke:EventEmitter = new EventEmitter();
  ngAfterContentInit() {
    this.invoke.emit(null);
  }
}

Och använd det som

<tr *ngFor="let item of mf.data" (invoke)="myFunction(item)" >