【问题标题】:How to update angular page without refreshing?如何在不刷新的情况下更新角度页面?
【发布时间】: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 的两个独立实例。
  • 是的,我的意思是新的浏览器标签。一旦我完成了新浏览器选项卡的工作,数据就会更新到服务器并检查它。之后,我想更新主页进度条。我需要类似事件触发器的东西,但我不知道我用的是什么。

标签: angular events


【解决方案1】:

您可以考虑为您的应用实现发布/订阅。这将允许您将事件推送到所有活动客户端,并让他们知道他们需要从服务器中提取更新。

这是一个受欢迎的客户的链接:https://socket.io

【讨论】:

    猜你喜欢
    • 2018-03-24
    • 2011-06-15
    • 2017-03-24
    • 2019-12-11
    • 2017-05-11
    • 1970-01-01
    • 2019-11-25
    • 2017-12-21
    • 2021-09-14
    相关资源
    最近更新 更多