如何记住Angular.js中加载的视图/帧

时间:2013-09-17 11:57:00

标签: angularjs angular-ui

我目前正在开发一个大型企业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,我们不能这样做。希望这澄清。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

您始终可以将Angular的状态与浏览器的本地存储同步。因此,每种形式的每个字段都必须有一个唯一的密钥,并使用类似this的内容。

或者,您可以从每个关心保存状态的控制器中侦听$routeChangeStart事件(docs)。然后,控制器可以决定将其状态(或不是)序列化到本地存储器。在控制器初始化时,必须检索保存的状态。

涉及浏览器local storage的解决方案不会影响服务器,但在用户使用其他计算机时无法使用。否则,您应该像以前一样监听路由事件,但是将“持久工作区”与服务器同步(更慢,更多的开发时间)。