如果我不想向订阅传递任何值,我该如何使用 dialogRef.afterClosed()(result =>{}
How do I use dialogRef.afterClosed() if I don't want to pass any value to the subscribe(result =>{}
我的情况是我想打开一个对话框组件,其中我从主组件传递一个值,然后关闭后我只想刷新主组件中的table,但不使用任何订阅或将任何值传递给主要组件。
代码是这样的:
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
,但是我可以完全不使用订阅吗?我只想在关闭对话框后使用以下语句和函数。谢谢
如果您想在关闭后执行某些操作,afterClosed() 是最佳解决方案。如果您不想在那里看到 'result' 因为它总是空的,您可以将其删除。不用担心那个订阅,它只会发出一个值,不需要在 Destroy 上取消订阅。
dialogRef.afterClosed().subscribe(() => {...
您也可以在模式中执行操作,您只需要在关闭按钮上绑定 click
事件并在那里执行操作,但这对您的情况没有太大帮助。
我的情况是我想打开一个对话框组件,其中我从主组件传递一个值,然后关闭后我只想刷新主组件中的table,但不使用任何订阅或将任何值传递给主要组件。
代码是这样的:
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
,但是我可以完全不使用订阅吗?我只想在关闭对话框后使用以下语句和函数。谢谢
-
如果您想在关闭后执行某些操作,
afterClosed() 是最佳解决方案。如果您不想在那里看到 'result' 因为它总是空的,您可以将其删除。不用担心那个订阅,它只会发出一个值,不需要在 Destroy 上取消订阅。
dialogRef.afterClosed().subscribe(() => {...
您也可以在模式中执行操作,您只需要在关闭按钮上绑定
click
事件并在那里执行操作,但这对您的情况没有太大帮助。