角材对话框

时间:2018-10-17 09:37:42

标签: angular angular-material

我正在使用角度材质对话框。目前开放。但是我不知道如何使用对话框关闭按钮关闭它。我尝试了几次,但是做不到。 请检查以下代码(部分代码)

      constructor(private summaryService: SummaryService,public dialog: MatDialog) { }
  openDialog(): void {
    const dialogRef = this.dialog.open(ConfirmationDialog, {
    });


  }

  closeDialog(){
    alert("test");
    this.dialog.close();
  }

openDialog()运行良好。我在colseDialog()函数中有两个问题。 当我警告某些文本时,错误“ _co.closeDialog不是函数”。 我的IDE中显示其他错误“类型'MatDialog'不存在属性'关闭'”。您能提供关闭弹出窗口的解决方法

3 个答案:

答案 0 :(得分:0)

尝试在main.component.ts中制作dialogRef全局变量

cell==cell1|cell==cell2

尝试在您的ConfirmationDialog.component.ts中进行以下更改

dialogRef : MatDialogRef<ConfirmationDialog>

constructor(private summaryService: SummaryService,public dialog: MatDialog) { }

openDialog(): void {
   dialogRef = this.dialog.open(ConfirmationDialog, {
   });
}

closeDialog(){
   alert("test");
   this.dialogRef.close();
}

答案 1 :(得分:0)

您可以尝试这样的操作,您必须在声明dialogRef对象的方法中侦听close事件,否则它将是未定义的。

openDialog(): void {
   const dialogRef = this.dialog.open(ConfirmationDialog);
   dialogRef.afterClosed().subscribe(result => {
      if(result) {
        //Means user clicked on OK button
      }
    });
}

答案 2 :(得分:0)

您可以使用 afterOpened 事件全局获取模态窗口。

export class AppComponent implements OnInit, OnDestroy {
  dialogRef: MatDialog;

  constructor(@Inject(DOCUMENT) private _document: Document, public store: Store, dialog: MatDialog) {
    this.dialogRef = dialog;
    this.dialogRef.afterOpened.subscribe(value => {
      console.log("Some Modal Window Opened");
    })
  }