Backbone.js 如何禁用主干历史记录,但仍允许基于哈希的路由?

Backbone.js 如何禁用主干历史记录,但仍允许基于哈希的路由?,backbone.js,browser-history,Backbone.js,Browser History,假设我这样做: 单击主页(/)上的链接并转到/posts/1 触发事件并转到主干路由/posts/1/#/1/edit 我点击后退 我需要让用户返回主页(/),而不是返回/posts/1 因此,我需要允许主干散列路由工作,但不修改历史记录。 我个人更喜欢保留历史记录,但这是项目的要求。最新版本的主干(0.9.x)能够触发路由,但不能将其添加到历史记录中 有关替换:true选项,请参见 基本上,只需呼叫即可。使用trigger:true(触发路由)和replace:true(防止它进入历史记录

假设我这样做:

  • 单击主页(/)上的链接并转到/posts/1
  • 触发事件并转到主干路由/posts/1/#/1/edit
  • 我点击后退
我需要让用户返回主页(/),而不是返回/posts/1

因此,我需要允许主干散列路由工作,但不修改历史记录。
我个人更喜欢保留历史记录,但这是项目的要求。

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

有关替换:true选项,请参见

基本上,只需呼叫即可。使用trigger:true(触发路由)和replace:true(防止它进入历史记录)在路由器上导航

下面是一个JSFIDLE,展示了它的实际应用:

  • 单击“发布1”转到发布1页面
  • 然后,单击“编辑”转到 编辑页面
  • 然后,点击后退按钮-你应该回到原来的状态 家
app.navigate('posts/1/edit',{trigger:true, replace: true});