【发布时间】:2019-11-09 01:53:15
【问题描述】:
我正在使用 Angular 7,并且有主页。
主页面有很多按钮,按钮有这样的进度条:
一旦使用组件并关闭组件,按钮的进度条应该会更新。
在这里,MatDialog 可以很好地用于更新功能。
但是,新标签页没有更新。
除关闭函数外,其他代码完全相同。
MatDialog(工作):
dialogRef.afterClosed().subscribe((result) => {
this.updateProgress(...).catch((error) => { console.log(error); });
});
新标签(不工作):
windowRef.addEventListener('beforeunload', () => {
this.updateProgress(...).catch((error) => { console.log(error); });
});
当我点击另一个按钮时,我发现按钮的进度条正在更新。 我认为关闭新标签后会发生任何事件。
在这种情况下,如何在不刷新整个页面的情况下为主页制作事件?
请给我一些建议。
在此先感谢您,对不好的解释深表歉意。
【问题讨论】:
-
您需要手动触发变更检测。在 addEventListener 里面
-
当您说“新标签”时,您是指新的浏览器标签吗?您是否期望一个浏览器选项卡将更新推送到另一个浏览器选项卡?如果是这样,您将需要在您的应用程序的所有实例中促进某种共享状态。在一个选项卡中触发的事件不会影响另一个浏览器选项卡。它们是 angular 的两个独立实例。
-
是的,我的意思是新的浏览器标签。一旦我完成了新浏览器选项卡的工作,数据就会更新到服务器并检查它。之后,我想更新主页进度条。我需要类似事件触发器的东西,但我不知道我用的是什么。