从不同的组件角度关闭材质对话框

时间:2019-09-06 12:25:25

标签: angular angular-material material-dialog

我有A组件,可以打开材料对话框

组件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 个答案:

答案 0 :(得分:2)

  

Dialog | Angular Material Documentation

     

通过MatDialog创建的组件可以注入MatDialogRef并使用它关闭包含它们的对话框。关闭时,可以提供可选的结果值。此结果值作为afterClosed承诺的结果转发

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

  onUpload(): void {
    // upload stuff

    this.dialogRef.close();
  }
}