在Angular 1和Angular 2应用程序之间共享数据

时间:2018-07-24 20:14:02

标签: javascript angular angularjs-scope

这需要一些上下文:我正在开发旧的angular 1应用程序。前端有点像个整体,我们想升级到angular 2,而不必等到所有开发都被重写后再搁置。我们确定了一组独立于应用程序其他部分的功能。从某种意义上说,它就像一个函数:如果您传入这些输入,它将进行计算并返回结果。我们希望将此功能开发到自己的代码库中,并将其重写为angular 2。

它的工作方式是,登录后,所有这些调用都将发送到远程服务,并且它们的响应存储在有角度的1范围内。我们希望发芽的功能需要传递此数据,但是一旦有了它,它就可以自行完成所需的一切。因此,问题是,如何将角度1的数据传递给角度2的应用程序,反之亦然?这两个应用程序可以在同一域中提供服务。

我们已经考虑过使用Cookie,但是出于性能方面的考虑,我们不希望每次通话都通过有线方式发送此数据。我们已经考虑过本地存储,但是我对此并不了解。不知道这是否合适。还有其他可能性吗?角1/2内置的任何功能都可以解决此问题吗?

1 个答案:

答案 0 :(得分:2)

另一个选择可以是在另一个框架内的iframe中运行AngularJS或Angular 2+应用程序,并使用window.postMessage(...)在两者之间进行通信。但是,这不是理想的解决方案,因为它需要同时加载两个框架,并且它们之间的通信都可能有点混乱。

您可以在此处了解有关postMessage通信的更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage