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

Chr*_*unt 8 browser-history backbone.js

说我做以下事情:

  • 单击主页上的链接(/)并转到/ posts/1
  • 触发事件并转到骨干路径/ posts/1 /#/ 1/edit
  • 我点击回来

我需要做到这一点,以便用户返回主页(/)而不是返回/ posts/1

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

Edw*_*ith 13

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

请参阅Backbone.Router #navigation以获取replace:true选项.

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

app.navigate('posts/1/edit',{trigger:true, replace: true});
Run Code Online (Sandbox Code Playgroud)

这是一个jsfiddle显示它在行动:http://jsfiddle.net/7Z6ju/1/

  • 点击"发布1"进入发布1页面.
  • 然后,单击"编辑"转到编辑页面.
  • 然后,按下后​​退按钮 - 你应该回到家里.