如何在页面刷新后重新填充rootScope

时间:2017-02-13 13:14:32

标签: angularjs refresh rootscope

重新加载我的AngularJS Web应用程序会清除我的$ rootScope。 如何以最简单的方式存储我的$ rootScope,以便它能够在页面刷新后幸存下来?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

首先,让我们了解$ rootScope是什么/做什么。

The official angular documentation告诉我们,使用观察者的范围可以在模型和视图之间提供清晰的分离。 $ rootScopeProvider是整个角度应用程序独有的范围:将其视为可以从每个控制器,服务,工厂等访问的共享对象。

您可以通过向其添加新属性来使用$ rootScope。由于其观察者注入$ rootScopeProvider,所有其他组件中的该属性将立即可用。

现在,让我们来看看$ rootScope的用例并尝试理解它: 只要应用程序正在运行并以编程方式向$ rootScope添加属性,它就会被填充,您可以在应用程序中使用该属性的值:

// ... 
$rootScope.property = true;
// ...

但是,如果您尝试使用不打算存储为$ rootScope属性的对象和信息动态填充 $ rootScope ,则下次刷新时将刷新这些属性应用程序,因为您没有像以前的状态那样以编程方式重新创建相同的行为。

人们根本不建议使用$ rootScope,但如果您确实需要使用它,请多考虑一下用例。例如,如果您希望在登录时执行http POST,接收响应并将该响应存储在全局变量中,则可能有更好的服务(提供者)满足您的需求 - 例如$ cookies,localStorage或只是持久化数据库中的数据。