如何在对话框中关闭角度2的角度材质

时间:2017-07-11 12:57:13

标签: angular angular-material2

我正在撰写使用Angular-Material framework的Angular应用 我在该对话框中显示的组件内部提出dialog我向服务器发出HTTP请求,当请求结束时我想关闭对话框。当对话框关闭时,调用该对话框的组件会自行刷新。

如果我使用md-dialog-close,则会在HTTP请求处理完成之前关闭对话框。

我目前在打开对话框时使用以下代码解决了这个问题:

打开对话框

let dialogRef = this.dialog.open(UpdateStageDialogComponent);
dialogRef.componentInstance.dialogRef = dialogRef;

从组件

关闭对话框
export class UpdateStageDialogComponent implements OnInit {
  dialogRef: MdDialogRef<UpdateStageDialogComponent>;
  saveForm() {
    this.stageService.update(this.stage).subscribe(
      () => {
        this.dialogRef.close();
      },
      error => {
        alert(error);
      }
    )
  }
}

1 个答案:

答案 0 :(得分:3)

只需添加对组件的引用:

constructor(private dialogRef: MdDialogRef<yourModalComponent>) {}

functionToCallBeforeClosing() {
    this.yourService.yourHttpCall().subscribe(data => this.dialogRef.close());
}