2017-09-21 5 views
-1

Ich versuche, @Output Direktive verwenden, um Elternkomponente zu benachrichtigen, wenn auf eine untergeordnete Komponente geklickt wird. Im Anschluss ist mein Code:Angular - @Output funktioniert nicht

geordneten Ansicht

<app-perito-select *ngIf="peritoSelect" (cancel)="cancelPeritoAction()"></app-perito-select> 

Mutter Controller

... 
cancelPeritoAction(){ 
    console.log('cancel inside parent'); 
    this.selectedAction = undefined; 
    } 

Kind Controller

... 
@Output() cancelAction: EventEmitter<any> = new EventEmitter<any>(); 
... 
cancel(){ 
    console.log('cancel inside child'); 
    this.cancelAction.emit(); 
    } 

Ich folgte this Tutorial und es scheint ziemlich einfach, aber ich erreiche nicht die Elternfunktion. Was vermisse ich? Vielen Dank.

Antwort

4

Try

(cancel)="cancelPeritoAction()" 

mit

(cancelAction)="cancelPeritoAction()" 

weil Name Ihres @Output Ereignis ersetzt cancelAction

1

ist Sie können Ihre externe Output Eigenschaft umbenennen, indem Sie sie als String-Parameter, wenn Sie das Hinzufügen möchte behalten (abbrechen) als die Verwendung:

@Output('cancel') cancelAction: EventEmitter<any> = new EventEmitter<any>();