AngularJS通过服务传递数据,但在页面刷新时丢失数据
AngularJS passing data with services but lost data with a page refresh
当用户在浏览器上点击刷新时,我有一个问题,使用工厂(或服务)将一些数据从控制器a传递到控制器B。我可以成功地从控制器A设置数据并从控制器B获取数据,但当我在控制器B的视图中,如果我点击刷新,数据就丢失了,得到"undefined"我需要使用$localStorage来解决,有什么想法吗?怎么了?
服务工厂非常简单,我有一个这样的对象:
var obj = {};
那么我有两个方法:
return{
getObj: function(){return obj;},
setObj: function(data){ obj = data;}
};
我的控制器A使用setObj,控制器B使用getObj。我第一次运行它,一切都很好,但是当我在控制器B视图上时,我丢失了页面刷新的数据。
是的,您的数据将在页面刷新时丢失,这是正常的。当你刷新页面时,与当前页面关联的服务和控制器会重新加载,因此结果数据会被重置,或者在你的情况下这个对象
var obj = {};
被重新初始化。
你可以存储在localStorage在cookie上的持久数据,我建议你使用localStorage,因为大小,也因为如果你使用cookie,那么对于每个ajax请求,cookie数据也会去,这是不建议的。
如果用户点击页面重新加载,那么浏览器上永远不会有持久性。有很多方法可以解决这个问题,例如WebStorage API (HTML5)。
相关文章:
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- JQGrid使用服务器编辑后的更新数据刷新数据
- 如何使用新的JSON数据刷新jsTree
- jQueryAJAX将数据重新加载到DOM中,或者使用新数据刷新DOM
- 插入数据并用新数据刷新数据网格后,关闭弹出窗口
- 正在删除数据(刷新)WebGL Globe
- 使用 ajax 调用使用操作类返回的数据刷新(更新)表的各个行
- 好吗 - 使用 setInterval 进行数据刷新
- 数据表无限 + 自动数据刷新
- 模式未使用新数据刷新
- 聚合物-使用绑定数据刷新模板
- Angular如何知道应该重新应用绑定来用更新的数据刷新UI元素
- 连续添加|更新|将数据库中的数据刷新到页面而不回发
- 使用服务器端数据刷新gridx
- 在数据刷新后保留最后的Flot十字准线和图例数据
- 如何用新数据刷新剑道网格
- Ng-Grid将在数据刷新后折叠行,如何防止这种情况
- 当数据刷新时,jQuery UI手风琴不工作
- 如何在ajax网格中使用数据刷新作为触发器
- 如何在AngularJs中保持页面上的数据刷新