如何在重新加载页面或使用AngularJS单击“后退”按钮时保存搜索结果

时间:2016-03-08 19:02:36

标签: javascript html angularjs

我有一个带有搜索页面的Web应用程序,可以从后端加载信息。当用户搜索特定内容时,将显示相关数据。但是,当用户重新加载页面时,将删除搜索结果。此外,如果用户单击特定搜索结果,则新页面会加载有关此搜索的更详细视图。单击浏览器的后退按钮时,搜索结果将再次丢失。刷新页面或用户想要返回搜索结果时,如何保存搜索结果?

我很感激基于AngularJS的解决方案,因为这是我正在使用的框架。谢谢!

2 个答案:

答案 0 :(得分:3)

您应该使用ui-router或ngRoute进行路由。您似乎没有使用它,因为您说当用户点击后退按钮时,结果会丢失。如果您使用路由,则页面将不会刷新,如果您将其保存在范围内,则结果不会丢失。

对于刷新后的持久存储,我建议使用window session storage

在您的应用中,您可以将$ window服务注入您的控制器/服务或任何您想要的内容,然后像这样使用它:

$window.sessionStorage["myVar"] = 'this will be here even after refresh';

如果用户刷新页面,您可以检索变量的内容,如下所示:

var myVar = $window.sessionStorage["myVar"];

答案 1 :(得分:2)

您可以使用localStorage。

localStorage.setItem(key,value);

localStorage.getItem(key);

请寻找更多高级功能

ngStorage