Angular2材质对话框自动关闭

Angular2材质对话框自动关闭,angular,angular-material2,Angular,Angular Material2,我使用angular2材质MdDialog来显示表单 当用户提交表单时,一个请求被发送到后端,如果请求成功,我需要关闭对话框。如果后端请求失败,我需要保持对话框打开 我可以使用下面的按钮关闭对话框 <button md-raised-button md-dialog-close>Cancel</button> 取消 但是,在这种情况下,我只需要在后端请求成功时关闭对话框,因此我需要一种以编程方式关闭对话框的方法 对话框中显示的组件没有dialog ref,我不知道从组

我使用angular2材质
MdDialog
来显示表单

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

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

<button md-raised-button md-dialog-close>Cancel</button>
取消
但是,在这种情况下,我只需要在后端请求成功时关闭对话框,因此我需要一种以编程方式关闭对话框的方法

对话框中显示的组件没有dialog ref,我不知道从组件自动关闭对话框的其他方法


是否可以从对话框内的组件中关闭对话框?

如果要从对话框中关闭对话框:

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

closeDialog(){
  this.dialogRef.close();
}
constructor(private matDialog: MatDialog){}

//anywhere
let dialogRef = this.matDialog.open(MyDialogComponent);
dialogRef.close();

下面这个对我来说很好


this.matDialog.closeAll()

如接受答案中所述

this.dialogRef.close();
关闭对话框。但大多数情况下,我们希望在不刷新页面的情况下立即呈现来自服务器的响应。为此,我们将响应作为arugument传递给close方法,如下所示

this.dialogRef.close(response);
如果这样做,就不需要使用文档中的事件emmiter方法

<button mat-button [mat-dialog-close]="response" cdkFocusInitial>Add</button>
添加

因为它在异步操作完成之前关闭对话框。

当我将其作为正常屏幕打开时,会出现错误。。而不是模态..有什么想法吗?关闭对话框后,父组件内容不可见。原因可能是什么?@manirajs您必须将对话框的数据传递到
close()
方法。如果有用,则对话框的内容来自子组件!