Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何在Angular.js中记住加载的视图/帧_Angularjs_Angular Ui - Fatal编程技术网

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

Angularjs 如何在Angular.js中记住加载的视图/帧,angularjs,angular-ui,Angularjs,Angular Ui,我目前正在一个大型企业web平台上工作,该平台将不同的web应用程序(html/js/silverlight)加载为视图,因此它几乎就像一个容器或一个用于访问不同类型web应用程序的框架 我们目前正在审查向Angular的迁移,但有一个问题(至少)我们无法解决 在当前的非角度版本中,当用户从框架内加载应用程序-a并在文本框中键入“ABC”时,他决定离开并加载应用程序-B,在使用该应用程序后,当导航回应用程序-a时,他仍然可以在文本框中看到“ABC”,换句话说,他拥有“持久工作区”因此,他加载的每

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

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

在当前的非角度版本中,当用户从框架内加载应用程序-a并在文本框中键入“ABC”时,他决定离开并加载应用程序-B,在使用该应用程序后,当导航回应用程序-a时,他仍然可以在文本框中看到“ABC”,换句话说,他拥有“持久工作区”因此,他加载的每一个应用程序,无论是Silverlight还是Html/JS,都可以一直加载到内存中

不管这种方法是对是错,有人能想到用Angular实现的方法吗?一个简单的概述就足够了

[更新]

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


谢谢大家。

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

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


涉及浏览器的解决方案不会影响服务器,但当用户使用另一台计算机时,将无法使用。否则,您应该像以前一样侦听路由事件,但要将“持久工作区”与服务器同步(速度较慢,开发时间较长)。

谢谢,但这将如何正确地与Silverlight应用程序配合使用?这是否意味着需要重新加载XAP文件?如果是,那就意味着重新加载Silverlight应用程序,这是不可接受的;从这个问题上,我认为Silverlight应用程序可以自己管理持久的工作场所。同一个应用程序是否同时实现为Silverlight和HTML?我同意这个问题有点令人困惑,我们要迁移的应用程序就像一个超级智能iframe,用于加载组织内其他人编写的许多其他独立应用程序。因此,当用户加载一个应用程序(比如Silverlight)并在文本框中键入某个内容,然后决定导航离开时,我们不会卸载页面,我们只是隐藏iframe,以便在返回时可以看到他之前的状态。希望澄清