0

我目前正在开发一个大型企业 Web 平台,该平台将不同的 Web 应用程序(html/js/silverlight)加载为视图,因此它几乎就像一个用于访问不同类型的 Web 应用程序的容器或框架。

我们目前正在审查向 Angular 的迁移,但是(至少)有一个问题我们无法解决。

在当前的非 Angular 版本中,当用户从框架内加载 Application-A 并在文本框中输入“ABC”然后他决定离开并加载 Application-B 并在使用该应用程序后导航回 Application -A 他仍然可以在文本框中看到“ABC”,换句话说,他有“Persistent Workspace”,因此他加载的每个应用程序(无论是 Silverlight 还是 Html/JS)都能够保持加载到内存中。

不管这种方法是对是错,谁能想到在 Angular 中可以实现这种方法?一个简单的概述就足够了。

[更新]

请注意,我们正在为当前加载的每个 Web 应用程序处理 iFrame,因此没有可以持久保存到浏览器存储或其他地方的模型。如果我们所有的应用程序都基于 html/js,那么我们将没有问题,因为我们可以序列化每个视图的状态,但由于有些应用程序在 Silverllight 中,我们不能这样做。希望这可以澄清。

谢谢你们。

4

1 回答 1

0

您始终可以将 Angular 的状态与浏览器的本地存储同步。因此,每个表单中的每个字段都必须有一个唯一的键,并使用类似的东西。

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

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

于 2013-09-17T12:10:53.347 回答