我需要在用户访问不同页面期间保持 Controller 的状态,以改善某些用户体验。
例如,我有一个列表,它是通过指令创建的,它有一个分页部分,所以想象一下,当用户转到第 20 页并选择一个项目时,他们将被重定向到详细信息页面,但是当他们单击后退按钮并返回到上一页他们看到列表的第一页,这很不方便,他们希望再次出现在第 20 页。
我想出了几个选项:
- 使用对话框显示第二页(项目详细信息),这样他们就可以关闭该模式并返回到上一个表单而不进行任何更改。
- 使用 URL 中的参数将用户重定向到第二个页面,然后使用该参数返回他们以了解他们之前的页码。
- 全局保留一些关键变量以存储 Controller 状态并在用户返回时使用它们。
但我认为应该有更好的想法,比如在重定向期间保持 Controller 的状态。
任何想法将不胜感激。
最佳答案
- 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/