代码之家  ›  专栏  ›  技术社区  ›  Daniel Kaplan

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

  •  -1
  • Daniel Kaplan  · 技术社区  · 6 年前

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

    它的工作方式是,您登录,所有这些调用都被发送到远程服务,它们的响应存储在角度为1的范围内。我们想要开发的功能需要传递这个数据,但是一旦它拥有了它,它就可以自己做它需要做的一切。所以问题是, 如何将角度1数据传递给角度2应用程序,反之亦然? 这两个应用程序可以从同一个域提供服务。

    我们已经考虑过使用cookie,但是出于性能方面的考虑,我们不希望在每次通话时都通过电线发送这些数据。我们考虑过本地存储,但我不太了解。不确定它是否合适。还有其他的可能性吗?角度1/2内置的任何东西可以帮助解决这个问题?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jimmy Hedström    6 年前

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

    您可以在此处阅读更多关于邮件通信的信息: https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage