【发布时间】:2012-04-11 23:51:53
【问题描述】:
我的backbone.js有三个视图:
- 类别列表
- 类别中的项目列表
- 单个项目的表格
我正在使用backbone.js 路由器在这些视图之间导航。应用程序中的用户流转到 12、23 和 3 --> 1。用户可以使用浏览器的后退和前进按钮来回导航,这是想要的行为。对任何项目的深层链接也有效。
问题是我想保持历史整洁。这是一个示例使用流程:
- 用户打开类别列表。历史记录:“类别列表”(正确)
- 用户选择“我的类别”。历史记录:“我的类别”
- 用户选择“我的项目”。历史记录:“我的项目”
- 用户填写表格并保存,被重定向到“类别列表”。历史记录:“类别列表”
另一个例子:
- 用户打开“我的类别”的网址
- 用户按下主页按钮。历史记录:“类别列表”
关于如何以干净的方式实现这一点的任何想法?
【问题讨论】:
-
我认为你应该open your search,这不是关于 Backbone,而是关于 javascript、浏览器标准和安全问题。你会发现一些技巧。
-
我意识到历史处理是一个浏览器功能,与主干没有直接关系。问题是如何在使用主干路由的应用程序的上下文中操作历史记录。
-
只是为了澄清我在寻找这个问题和赏金的内容: - 一种使用 history.back()、history.forward() 和 history.replaceState 的方法(或者在这种情况下是路由器。导航(片段,{replace:true})以实现上述用例 - 解决这个用例就足够了,不必是一个全局解决方案 - 我知道我们处于一个有点棘手的领域,但是优雅或至少独立的解决方案受到赞赏
-
事后,但我决定将我的解决方案重写为开源组件,以防它对其他人有用。可以在github.com/omahlama/historyhelper找到
标签: backbone.js browser-history