问题描述
我正在使用@ angular / mdc-web作为Material Design的包装器来进行Angular 8项目。今天,我不得不修复围绕错误对话框的错误。该对话框显示错误消息,可以单击“确定”按钮将其关闭。相当直截了当,在我实施该工具后的第二天,质量检查人员报告了一个问题缺陷之前,所有事情都起到了吸引作用。显然,关闭对话框后,某些UI元素(按钮)停止工作。
为了检查该错误,我订阅了应用程序中央 openDialog 函数返回的Observable,突然不再出现该错误。这是 openDialog 函数的相关代码:
const dialogRef: MdcDialogRef<T> = this.dialog.open(
// irrelevant stuff ommitted
);
return dialogRef.afterClosed().pipe(
tap(
() =>
(this.dialogRefArray = this.dialogRefArray.filter(
item => item.id !== data.id
))
),delay(500),tap(() => this.navigationBlocker.unregister(data.id)),map(resultFn)
);
现在,我对Rxjs还是陌生的,我的问题是:为什么仅在订阅了 afterClosed 后才调用它?像这样:
const dialog = this.dialogService.openDialog(
// irrelevant stuff ommitted
).subscribe(() => {
dialog.unsubscribe();
});
我什至无需取消订阅即可正常运行。我正在尝试了解Observable的工作方式。我会怀疑,一旦关闭对话框,便会调用 afterClosed ,类似于事件。为什么我必须订阅它?
非常感谢您的解释,欢呼。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)