注销时关闭所有打开的动态对话框

piq*_*ers 0 primeng angular

我正在使用 primeng 动态对话框来显示组件中的一些数据。但是,如果对话框打开且会话超时,应用程序会注销,但对话框仍保持打开状态。我想关闭对话框,因为应用程序已注销。我尝试调用 DynamicDialogRef close() 方法,但这不起作用。我怎样才能做到这一点?

这就是我在退出方法中调用的内容 -

 constructor private dialogRef: DynamicDialogRef) { }

 signOut()
        {
        this.dialogRef.close();
        this.dialogRef.destroy();
  }
Run Code Online (Sandbox Code Playgroud)

这就是我调用对话框的方式 - 模板

   <button (click)="showDialog()"></button>
Run Code Online (Sandbox Code Playgroud)

该方法称为:

showDialog() {
   
    const ref = this.dialogService.open(DetailsDialogComponent, {

      data: {
        value: 'TEST,
      },
      header: 'Details Panel",
      width: '70%',
      dismissableMask: true
    });

    
      }
Run Code Online (Sandbox Code Playgroud)

piq*_*ers 5

因此,与 mat 对话框不同,primeng 不提供立即关闭所有对话框的方法,要实现此目的,我必须使用以下内容 -

 this.dialogService.dialogComponentRefMap.forEach(dialog => {
      dialog.destroy();
    });
Run Code Online (Sandbox Code Playgroud)