如何禁用骨干历史记录但仍允许基于散列的路由?

时间:2012-02-18 03:18:05

标签: backbone.js browser-history

说我做了以下事情:

  • 点击首页上的链接(/),然后转到/ posts / 1
  • 触发事件并转到骨干路线/帖子/ 1 /#/ 1 /编辑
  • 我点击回来

我需要这样做才能让用户回到首页(/)而不是回到/ posts / 1

所以我需要允许骨干哈希路由工作,但不能修改历史记录。 我个人更喜欢保留历史,但这是项目的要求。

1 个答案:

答案 0 :(得分:13)

最新版本的Backbone(0.9.x)能够触发路线,但不能将其添加到历史记录中。

有关replace:true选项,请参阅Backbone.Router#navigate

基本上,只需在你的路由器上调用.navigate,触发器为:true(触发路由)并替换:true(以防止它进入历史记录)

app.navigate('posts/1/edit',{trigger:true, replace: true});

这是一个jsfiddle显示它的实际效果:http://jsfiddle.net/7Z6ju/1/

  • 点击“发布1”进入发布1页面。
  • 然后,点击“编辑”转到 编辑页面。
  • 然后,点击后退按钮 - 你应该重新开始 家。