#angular #angular-material
Вопрос:
Я не могу вернуть данные после закрытия диалогового окна «Материалы». Есть ли что-то, чего мне не хватает? Это мой код
Родитель
openDialog(){
var myDialogRef= this.dialog.open(SiteAddComponent);
myDialogRef.componentInstance.dialogRef = myDialogRef;
myDialogRef.afterClosed().subscribe(arg => console.log(arg)); // ← arg is 'undefined' here
}
Ребенок
dialogRef: any;
close() {
this.dialogRef.close(1);
}
Комментарии:
1. Привет, ребята, я нашел корень, потому что я вызвал метод CloseAll() в ngOnDestroy (), так что диалоговое окно не может возвращать данные.
Ответ №1:
**Parent component html**
<button mat-button (click)="openDialog()">Open dialog</button>
**Parent component ts**
constructor(public dialog: MatDialog) {}
openDialog() {
this.dialog.open(DialogElementsExampleDialog);
}
**Parent component html**
<h1 mat-dialog-title>Dialog with elements</h1>
<div mat-dialog-content>This dialog showcases the title, close, content and actions elements.</div>
<div mat-dialog-actions>
<button mat-button mat-dialog-close>Close</button>
</div>
Your Modal will work so check in [Stackblitz Example][1]
[1]: https://stackblitz.com/angular/rxblobloaqr?file=src/app/dialog-elements-example.ts