我目前正在开发一个大型企业Web平台,它将不同的Web应用程序(html / js / silverlight)作为视图加载,因此它几乎就像一个容器或框架,用于访问不同类型的Web应用程序。
我们目前正在审核迁移到Angular但是有一个问题(至少)我们无法解决。
在当前的非Angular版本中,当用户从框架中加载Application-A并在文本框中输入“ABC”类型时,他决定导航并加载Application-B并在导航后使用该应用程序回到应用程序-A他仍然可以在文本框中看到“ABC”,换句话说他有“持久工作空间”,因此无论是Silverlight还是Html / JS,他加载的每个应用程序都能够被加载到内存中。 / p>
无论这种方法的对与否,谁都能想到在Angular中实现这种方式的方式?一个简单的概述就足够了。
[UPDATE]
请注意,我们正在为我们当前加载的每个网络应用处理iFrame,因此没有可以持久存储到浏览器存储或其他地方的模型。如果所有我们的应用程序以html / js为基础,那么我们就没有问题,因为我们可以序列化每个视图的状态,但由于一些在Silverllight,我们不能这样做。希望这澄清。
谢谢大家。
答案 0 :(得分:0)
您始终可以将Angular的状态与浏览器的本地存储同步。因此,每种形式的每个字段都必须有一个唯一的密钥,并使用类似this的内容。
或者,您可以从每个关心保存状态的控制器中侦听$routeChangeStart
事件(docs)。然后,控制器可以决定将其状态(或不是)序列化到本地存储器。在控制器初始化时,必须检索保存的状态。
涉及浏览器local storage的解决方案不会影响服务器,但在用户使用其他计算机时无法使用。否则,您应该像以前一样监听路由事件,但是将“持久工作区”与服务器同步(更慢,更多的开发时间)。