Angular2材质对话框自我关闭

Lah*_*ima 31 angular-material2 angular

我用angular2材料MdDialog来展示一个表格.

当用户提交表单时,会向后端发送请求,如果请求成功,我需要关闭对话框.如果后端请求失败,我需要保持对话框打开.

我可以使用下面的按钮关闭对话框.

<button md-raised-button md-dialog-close>Cancel</button>
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,我只需要在后端请求成功时关闭对话框,所以我需要一种以编程方式关闭对话框的方法.

对话框中显示的组件没有对话框参考,我不知道从组件中自我关闭对话框的任何其他方法.

有没有办法从对话框内的组件中关闭对话框?

Plo*_*ppy 55

如果你想从对话框中关闭它:

constructor(private dialogRef:MatDialogRef<MyDialogComponent>){ }

closeDialog(){
  this.dialogRef.close();
}
Run Code Online (Sandbox Code Playgroud)

如果您想从对话框的父级关闭它:

constructor(private matDialog: MatDialog){}

//anywhere
let dialogRef = this.matDialog.open(MyDialogComponent);
dialogRef.close();
Run Code Online (Sandbox Code Playgroud)