Диалоговое окно Угловой материал возвращает неопределенное значение после закрытия, хотя переданные данные

#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