我正在使用角度材质对话框。目前开放。但是我不知道如何使用对话框关闭按钮关闭它。我尝试了几次,但是做不到。 请检查以下代码(部分代码)
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'不存在属性'关闭'”。您能提供关闭弹出窗口的解决方法
答案 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");
})
}