我正在撰写使用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);
}
)
}
}
答案 0 :(得分:3)
只需添加对组件的引用:
constructor(private dialogRef: MdDialogRef<yourModalComponent>) {}
functionToCallBeforeClosing() {
this.yourService.yourHttpCall().subscribe(data => this.dialogRef.close());
}