【问题标题】:Angular app lifetime in a browser浏览器中的 Angular 应用程序生命周期
【发布时间】:2016-01-21 00:47:46
【问题描述】:

我尝试用谷歌搜索以下问题,但没有任何结果(我需要这样做非常奇怪)。

什么是浏览器中的 Agular 应用程序生命周期?

或者换种说法,当用户打开 Angular 网站时,应用程序实例会在浏览器中保持活动状态,直到用户离开网站或关闭浏览器?

在单独的说明中,使用服务来保存全局变量(例如登录的用户名)还是 $rootScope 更好?

谢谢!

【问题讨论】:

  • 如果可能的话,你的两个问题真的应该分成单独的帖子。

标签: angularjs


【解决方案1】:

什么是浏览器中的 Agular 应用程序生命周期?

当特定选项卡/站点打开时,角度应用程序仍然存在。如果您离开它然后回到它,出于所有意图和目的,那是应用程序的一个新实例。您可以模拟一个持久会话,但这需要您自己进行自定义实现。

这是一篇关于保留您可能感兴趣的应用程序刷新数据的帖子 - AngualrJS: sustaining data on html refresh

在单独的说明中,使用服务来保存全局变量(例如登录的用户名)还是 $rootScope 更好?

这是有据可查的,您可以在 SO 和 Internet 上找到无数来源,但最好使用 Angular 服务在各种控制器之间共享数据。如果可以避免的话,不建议您污染 $rootScope。

这是关于 SO 提出的相同问题的解决方案:

【讨论】:

    【解决方案2】:

    如果您使用 Angular 的路由或其他方式加载不会重新加载页面的视图,那么 Angular 应用程序将保持活动状态,直到您离开页面(关闭或刷新)。
    每次通过 Angular 加载页面时,其控制器的数据都处于初始状态,因此当您更改页面时,对控制器数据的任何修改都会丢失(除非您将其保存在某处)

    关于您的第二个问题,最好的方法应该是在每次页面更改后获取用户的数据(检查用户是否仍然登录。保存用户的数据客户端而不检查它是否仍然有效可能是一个安全问题)。但无论如何,服务是比使用 rootScope 更好的数据存储方式

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 2017-10-18
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多