2017-11-24 6 views
0

Ist es möglich, die Funktion übergeben an den Event-Emitter zu erhalten?Holen Sie die Funktion einer eventEmitter geben Angular 4

Ich habe eine Komponente, und ich übergeben, eine Funktion zu einem Ereignis-Emitter wie folgt aus:

<component (onClick)='function(parameter)'></component> 

und in meiner Komponente Ich habe die @Output die Funktion zu empfangen und auszusenden, wenn Klick wie folgt aus:

@Output() onClick: EventEmitter<any> = new EventEmitter<any>(); 
<button (click)="onClick.emit($event)"> 

die Sache ist, dass ich die Funktion erhalten möchte, die ich an die Komponente zu übergeben, ist es möglich?

Antwort

0

Ja, das ist möglich

Können sagen, Sie eine Zusatzfunktion in Ihrem Kind Komponente.

@Output() onClick: EventEmitter<any> = new EventEmitter<any>(); 

    public add(a: number, b: number): number { 
    return a + b; 
    } 

Und auf der Taste Ereignis klicken, können Sie die Funktion

<button (click)="onClick.emit(add)">Add</button> 

In Ihrer Stammkomponente emittieren Sie auf den Ereignisse aus der untergeordneten Komponente hören können.

<component (onClick)='someFunc($event)'></component> 

und rufen Sie die Funktion auf, wenn das Ereignis ausgelöst wird.

someFunc(add: any) { 
    const result = add(5, 5); 
    console.log('and result is',result); 
} 
0

Versuch wie folgt aus:

<component (onClick)='function($event)'></component>

statt

<component (onClick)='function(parameter)'></component>

Verwandte Themen