角度材料对话框再次出现

时间:2020-02-27 13:31:36

标签: angular

我在Angular Material对话框中遇到问题。 当我打开它时,它正在使用该函数,并且在我关闭它之后-一切都很好。 但是,当我更改页面(通过有角度的路由)时,此对话框将再次打开两次;而当我更改页面(再次通过有角度的路由)时,对话框将再次出现,但不会出现两次(每次对话框都会倍增)。 您可以在以下链接上查看图像:https://imgur.com/a/63FygUv。 您可以在这里找到代码:https://pastebin.pl/view/28457001 对不起,我的英语,仍然感谢您的帮助。

编辑: 解决了在ngOnDestroy中使用.unsubscribe的问题。但是无论如何,谢谢您的回答,对我很有帮助。

2 个答案:

答案 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!
});