我在Angular Material对话框中遇到问题。 当我打开它时,它正在使用该函数,并且在我关闭它之后-一切都很好。 但是,当我更改页面(通过有角度的路由)时,此对话框将再次打开两次;而当我更改页面(再次通过有角度的路由)时,对话框将再次出现,但不会出现两次(每次对话框都会倍增)。 您可以在以下链接上查看图像:https://imgur.com/a/63FygUv。 您可以在这里找到代码:https://pastebin.pl/view/28457001 对不起,我的英语,仍然感谢您的帮助。
编辑: 解决了在ngOnDestroy中使用.unsubscribe的问题。但是无论如何,谢谢您的回答,对我很有帮助。
答案 0 :(得分:0)
尝试在关闭时将对话框引用设置为undefined,请参见此处:
this.dialogRef.afterClosed().pipe(
finalize(() => this.dialogRef = undefined)
);
答案 1 :(得分:0)
对于问题的导航结束部分(可能会解决您的其他问题):
Material Dialog API提供了用于关闭导航对话框的选项
以您的代码为例,尝试添加如下所示的closeOnNavigation: true
const dialogRef = this.dialog.open(FourthPageDialogComponent, {
disableClose: true,
data: { selectorFirst: resp['alertFreq'], selectorSecond: resp['conditionalAlert'], sliderFirst: this.sliderFirst, sliderSecond: this.sliderSecond, user: this.user},
closeOnNavigation: true // Try adding me!
});