2017-07-12 82 views
0

我有一個對話框打開子組件父組件:Angular 4 - 在對話框中將子變量傳遞給父變量?

open() { 
     this.dialogRef = this.dialog.open(ItemComponent); 

     this.dialogRef.afterClosed().subscribe(result => { 

      this.dialogRef = null; 
     }); 
    } 

如何使用的子組件修改的定義和使用的變量/要傳遞到母部件?

+0

見第8步** **從答案https://stackoverflow.com/questions/34205593/working-example-of-angular -2-0-material-mddialog-with-angular-2-0/40185852#40185852 – yurzui

+0

下面是一個解決你的問題(和我的)的plnkr鏈接[鏈接](http://plnkr.co/edit/KbE3uQi2zMNaZlZEEG5Z?p = info)。所有功勞歸於托馬斯粉紅。請參閱此討論主題[鏈接](https://github.com/angular/material2/issues/3593)。希望有所幫助。 – JefferinJoseph

回答

1

你的問題涉及到角的Component Interaction

在這種情況下,你可以在你的子組件使用@Output()

child.component.ts

@Ouput() childForm = new EventEmitter(); 

constructor() { 
} 

someFunction() { 
    this.childForm.emit('some data variable') 
} 

parenet .component.html

<child-component (childForm)="getDataFromChild($event)"></child-component> 

parent.component.ts

public getDataFromChild(event: Event) { 
    if (event) { 
    // do something 
    } 
} 

+0

先生,您犯了一個錯誤 '' –

+0

thx指出來! –

+0

錯誤是什麼?嘗試這個時出現問題:( – eagleEye