Angular 2 mdDialog(一个超过一秒,然后关闭所有)

时间:2017-09-23 08:08:47

标签: angular angular-material

我正在尝试做下一件事: 首先,我调用一个对话框,如果用户在其外部单击,则在第一个对话框上弹出另一个对话框并询问用户是保存还是取消。无论如何在用户点击保存或取消之后我想关闭所有对话框,我知道存在方法" 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)

现在效果很好:))

0 个答案:

没有答案