我想知道Angular JS中存储在工厂/服务中的变量的生命周期是多少?如果我们刷新页面,值是否仍然存在?如果我们刷新整个应用程序会发生什么?实际上我正在尝试将值存储在工厂中,并通过将它们传递到相应的控制器中来获取它们。那么我们应该刷新(F5)应用程序,在工厂中值是否未定义? 任何帮助将不胜感激
答案 0 :(得分:0)
服务的生命周期是应用程序的生命周期 - 服务基本上是构建应用程序时创建的单例。
所以你基本上问:什么动作重启应用程序?
用户手动'刷新'页面:是的。浏览器按字面意思接受用户的请求:丢弃当前页面并重新加载它(虽然当然存在要考虑的缓存问题;但它们是从任何javascript对象的生命周期中分离出来的。)
应用程序导航到同一命名空间中的URL(即' /#/'之前的URL部分):否。无论您设置了什么路由(例如' /#/ foo / page1')然后导航到代码控制下,都不会触发浏览器重新加载页面。原始应用程序对象(以及代表服务的单例)仍然有效。