我正在尝试做下一件事: 首先,我调用一个对话框,如果用户在其外部单击,则在第一个对话框上弹出另一个对话框并询问用户是保存还是取消。无论如何在用户点击保存或取消之后我想关闭所有对话框,我知道存在方法" closeAll"在mdDialog,但我不能理解如何使它工作。 这是plnkr: https://plnkr.co/edit/IZrpFYqCLvKSMLXjaW8g?p=preview
问题是 - 当我点击"保存"或者"取消" - 什么也没发生。
这是我想要的: 对于第一个对话框,我设置了disableClose:
openDialog(): void {
let dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
width: '250px',
data: { name: this.name, animal: this.animal },
**disableClose:true**
});
然后我使用方法backdropClick,如果用户在对话框外单击,我会调用第二个对话框:
dialogRef.backdropClick().subscribe(backdrop => {
if (backdrop == null) {
**this.openDialogOver();**
}
在第二个对话框中,我按下了两个按钮:
<div md-dialog-actions>
<button md-button (click)="**onNoClick()**" >Save</button>
<button md-button (click)="**onNoClick()**" >Cancel</button>
</div>
并设置方法onNoClick():
onNoClick(): void {
this.dialogRef.**closeAll(**); // or **MdDialog.closeAll**
}
这不起作用:D
UPD: 我忘记向其构造函数添加第二个对话框:
constructor(public dialog: MdDialog)
现在效果很好:))