首页 > 解决方案 > 如果我不想将任何值传递给 subscribe(result =>{},我该如何使用 dialogRef.afterClosed()

问题描述

我的情况是我想打开一个对话框组件,在其中我从主组件传递一个值,然后在关闭后我只想刷新主组件中的表格,但不使用任何订阅或将任何值传递给主组件.

代码是这样的:

openDialog(employeeId: string): void {
  let dialogRef = this.dialog.open(ExampleDialogComponent, {
      width: '250px',
      data: employeeId,
  });
    
  dialogRef.afterClosed().subscribe(result => {
     console.log('The dialog was closed');
     this.dataSaved = true;
     this.employeeIdUpdate = null;
     this.employeeForm.reset();
     this.loadAllEmployees();
  });
}

现在变量result来了undefined,但我可以不使用订阅吗?我只希望以下语句和函数在我关闭对话框后工作。谢谢

标签: angulartypescriptobservablesubscribemat-dialog

解决方案


  1. 如果您想在关闭后执行某些操作,则 afterClosed() 是最佳解决方案。如果你不想在那里看到那个“结果”,因为它总是空的,你可以删除它。不用担心那个订阅,它只会发出一个值,并且不需要在 onDestroy 上取消订阅。

    dialogRef.afterClosed().subscribe(() => {...

  2. 您也可以在模态中执行操作,您只需要click在关闭按钮上绑定事件并在那里执行操作,但这对您的情况没有太大帮助。


推荐阅读