首页 > 解决方案 > 带有状态管理的 Angular 新窗口

问题描述

我有一个要求:在 Angular 6 中打开一个新窗口,并在主窗口和辅助窗口之间建立双向通信。

我创建了一个服务 WindowRef 以使用角度“窗口”打开一个新窗口/选项卡。我创建了一个@ngrx/store 系统来管理应用程序中的状态。我可以在主窗口中管理任意数量的操作的应用程序状态,但是当我打开一个新窗口并尝试访问该状态时,它返回 null。

如果我可以保持状态,我可以尝试使用 ngStore 来调度操作,并尝试在主要和次要打开的窗口之间建立双向通信通道。

有人可以建议/指出一种实现上述要求的方法吗?

标签: angularangular5ngrxngrx-storengrx-router-store

解决方案


ngrx/store在内存中工作,这意味着如果您刷新页面(或打开新选项卡),商店中的当前状态将丢失。

如果你想在两个窗口之间进行通信,你可以实现某种服务器端通信,例如firebase

没有服务器的另一种选择是将状态/操作存储在您的中localStorage并监听更改localStorage以更新窗口中的状态。


推荐阅读