0

我的应用程序中有一个按钮,可以在 MatDialog 中打开一个组件。在组件中,我进行 API 调用。在关闭 MatDialog 时,它将被销毁。

当我在单击按钮时第二次打开 MatDialog 时,我必须再次进行这些 api 调用,因为第一个实例已被破坏。

我正在寻找一个解决方案,我的 MatDialog 的第一个实例不会被破坏,并且每次单击按钮时我都不必进行 api 调用。

我的代码如下:

this.dialogBox = this.dialog.open(FilterModal, {
      data: { filters: this.dataFilters, filtersjson: this.filtersjson },
      width: '300px',
      height: 'calc(100vh - 120px)',
      panelClass: 'custom-modalbox',
      hasBackdrop: false,
      position: { top: '120px', right: '0px' }
    });
    this.dialogBox.afterClosed().subscribe(res => {
      if (res) {
        // function();
      } else {
        // function2();
      }
    });
4

1 回答 1

0

您可以将数据存储在行为主题中,这样当您再次调用对话框时,您可以使用 .next 获取旧数据。

于 2020-11-25T17:20:49.203 回答