【问题标题】:Retain data on browser refresh in AngularJS在 AngularJS 中保留浏览器刷新数据
【发布时间】:2015-09-17 16:46:46
【问题描述】:

我在AngularJS 应用程序中工作,Spring rest 作为后端。我对angularjs 很陌生。

我有一个 UI 页面,我在其中显示了表中的一些对象列表。每条记录都有一个编辑按钮。当我单击编辑时,会打开另一个页面,相应地设置数据。

问题是,在编辑页面上,如果我refresh the browser,我会丢失我的数据。我能想到的一种方法是打另一个rest 电话,但我想避免打任何休息电话。

有没有什么方法可以在刷新时保留页面上的数据或进行休息调用是更好的解决方案?

【问题讨论】:

  • 如果你想要保留的数据比较简单(比如一个id),你可以尝试使用$location.search保存在url中
  • 不仅是id,还有整个对象应该显示在页面上

标签: javascript java angularjs spring-rest


【解决方案1】:

我认为最简洁的方法是进行 REST 调用,因为服务器上的数据可能已更改。但是,如果您想避免呼叫,您可以使用localstorage。只需使用键值对将表中的数据存储在本地存储中(为每一行分配一些唯一键)。你可以使用这个插件:Angular LocalStorage

【讨论】:

  • 谢谢!!..但是为什么进行 REST 调用会是最干净的方式呢?假设我在编辑之前在页面上有一些值“x”,当我刷新页面时,由于再次调用 REST,它可能变为“y”,因为其他用户可能已经更新了该值。所以,这可能会让用户感到困惑……这有意义吗?
  • 您的意思是 y 已被用户编辑为 x ?在这种情况下,用户可能想要来自服务器的最新值,因此正在按下刷新?如果该值已被另一个客户端上的其他人从 x 更改为 y,那么向用户显示非陈旧值不是更好吗?
  • 但在只读屏幕上,即在单击编辑之前..用户看到值 x,他决定将值更改为 y,因此他单击编辑并导航到编辑屏幕...在那里他更改了值从 x 到 y,但在提交之前,他刷新了浏览器..如果在其他用户之间将值更新为 y,即使他没有更新它,他也会困惑它是如何变成 y..
猜你喜欢
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 2018-04-25
  • 2010-11-11
  • 1970-01-01
相关资源
最近更新 更多