закрыть диалоговое окно материала из другого компонента angular

У меня есть компонент A, который открывает диалог материалов

компонент А

  openDialog(): void {
    const dialogRef = this.dialog.open(**component B**, {
      width: '1000px',
    });

затем я использую для загрузки изображения в этом диалоговом окне, и с помощью кнопки загрузки я загружаю его с помощью компонента B на сервер. Теперь, когда я закончил загрузку изображения, я хочу закрыть это диалоговое окно из компонента B.

компонент B

onUpload() {
  const fd = new FormData(); 
  fd.append('image', this.selectedFile);
  this.service.uploadImage(fd).subscribe(
    (res:any)=>
    {
//how to close dialog here ?

    },

Как мне это сделать?

1 ответ

Решение

Диалог | Документация по материалам Angular:

Компоненты, созданные с помощью MatDialog, могут внедрять MatDialogRef и использовать его для закрытия диалогового окна, в котором они содержатся. При закрытии можно указать необязательное значение результата. Это значение результата передается как результат обещания afterClosed.

export class ComponentB {
  constructor(
    public dialogRef: MatDialogRef<DialogOverviewExampleDialog>
  ) {}

  onUpload(): void {
    // upload stuff

    this.dialogRef.close();
  }
}
Другие вопросы по тегам