javascript - 如何恢复以前的 Angular Controller 状态

标签 javascript angularjs angularjs-scope angular-ui-router single-page-application

我需要在用户访问不同页面期间保持 Controller 的状态,以改善某些用户体验。

例如,我有一个列表,它是通过指令创建的,它有一个分页部分,所以想象一下,当用户转到第 20 页并选择一个项目时,他们将被重定向到详细信息页面,但是当他们单击后退按钮并返回到上一页他们看到列表的第一页,这很不方便,他们希望再次出现在第 20 页。

我想出了几个选项:

  1. 使用对话框显示第二页(项目详细信息),这样他们就可以关闭该模式并返回到上一个表单而不进行任何更改。
  2. 使用 URL 中的参数将用户重定向到第二个页面,然后使用该参数返回他们以了解他们之前的页码。
  3. 全局保留一些关键变量以存储 Controller 状态并在用户返回时使用它们。

但我认为应该有更好的想法,比如在重定向期间保持 Controller 的状态。

任何想法将不胜感激。

最佳答案

  1. Redirecting users to the second page with a parameter in URL and then return them with that parameter to understand what page number they have been before.

我更喜欢这个,因为当你刷新页面时,你可以获得停留在第 20 页的额外好处。选项 1 和 3 不会给您带来额外的好处。路径参数也是书签友好的。

另一种供您研究的替代方案几乎同样好是 localstorage 或 cookies 。不过,我认为这些选项并不比您的 2 个更好。

关于javascript - 如何恢复以前的 Angular Controller 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32425860/

相关文章:

javascript - 如何在 React Router v4 中向子进程发送 props?

javascript - 在 JavaScript 中强制重新加载跳过 Service Worker

Javascript for 循环进行精确迭代

javascript - 如何在 Angular 中绑定(bind) map 的键

javascript - 如何设置参数值 - Javascript

javascript - 我应该删除 Angular watch 吗?

javascript - $scope.$apply 会降低性能

angularjs - 从指令更新范围变量

javascript - 我想加载并填充 vue.js (nuxt.js) 中每个组件的数据

javascript - 在一个接受数组并返回随机值的简单函数中 react js错误