我试图谷歌以下问题,但没有出现(这是我需要的超级奇怪)。
浏览器中的Agular应用生命周期是多少?
或者,当用户打开Angular网站,浏览器中的应用程序实例并在用户离开网站或关闭浏览器之前保持活动状态?或者
另外注意,最好使用服务来保存全局变量(例如记录的用户名)或$ rootScope?
谢谢!
答案 0 :(得分:3)
浏览器中的Agular应用生命周期是什么?
当特定标签/网站打开时,角度应用仍然存在。如果你离开它然后回到它,出于所有意图和目的,这是一个新的应用程序实例。您可以模仿持久会话,但这需要您自定义实现。
这是一篇关于保存您可能感兴趣的应用程序刷新数据的帖子 - AngualrJS: sustaining data on html refresh
另外注意,最好使用服务来保存全局变量(例如记录的用户名)或$ rootScope?
这是有据可查的,你可以在SO和互联网上找到无数的资源,但是使用角度服务在各种控制器之间共享数据会更好。如果可以避免,则不建议您污染$ rootScope。
以下是与SO提出的解决方案相同的问题:
答案 1 :(得分:1)
如果您使用angular的路由或其他方式加载不重新加载页面的视图,则角度应用程序将保持活动状态,直到您离开页面(关闭或刷新)。
每次通过angular加载页面时,其控制器的数据都处于初始状态,因此当您更改页面时,对控制器数据的任何修改都将丢失(除非您将其保留在某处,即是)
关于第二个问题,最好的方法是在每次更改页面后获取用户的数据(检查用户是否仍然登录。保存用户的数据客户端而不检查它是否仍然有效可能是一个安全问题)。但无论如何,服务是比使用rootScope
更好的存储数据的方法