【发布时间】:2019-11-09 12:03:09
【问题描述】:
我正在开发一个 Angular 应用程序。我尝试使用 MatDialog 打开一个对话框并尝试将其关闭
我这样打开对话框
openDialog(event) {
const dialogConfig = new MatDialogConfig();
dialogConfig.disableClose = true;
dialogConfig.autoFocus = true;
dialogConfig.position = {
top: bottom + 'px',
right: '0px'
};
dialogConfig.width = '50%';
dialogConfig.height = '590px';
this.dialog.open(UserDialogComponent, dialogConfig);
const dialogRef = this.dialog.open(UserDialogComponent, dialogConfig);
dialogRef.beforeClose().subscribe((result: string) => {
console.log('RIght before close,', result);
});
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed', result);
});
}
我在UserDialogComponent的构造函数中注入了MatDialogRef:
constructor(
private formBuilder: FormBuilder,
private dialogRef: MatDialogRef<UserDialogComponent>,
@Inject(MAT_DIALOG_DATA) data) {
console.log("Constructor UserDialogComponent START");
console.log(dialogRef);
this.dialogRef = dialogRef;
console.log("Constructor UserDialogComponent END");
}
为了关闭对话框,我使用了这个函数
close() {
console.log(this.dialogRef);
console.log('CLOSE CLICKED');
this.dialogRef.close(true);
}
但是 this.dialogRef 是一个空对象,当我调用这个函数时收到以下错误
ERROR TypeError: "this.dialogRef.close is not a function"
你能帮帮我吗?
【问题讨论】:
-
我真的很困惑。我删除了它,但我仍然有错误
-
可以分享对话框组件的代码吗?
-
是的,现在尝试删除之前关闭代码。它必须工作正常