【发布时间】:2013-02-21 10:02:28
【问题描述】:
我现在在一些应用程序上遇到了这个问题,所以我想知道我是否对 Backbone 历史做错了什么。情况是这样的……
我有两页,比如说:
index.html
app.html
索引页面只是一个普通的、平面的 HTML 页面,带有指向app.html 的链接。在 App 页面上,调用Backbone.history.start() 启动哈希状态管理,用于在 App 页面上的两个视图之间切换,例如:
app.html#search
app.html#results
因此,在 #search 和 #results 页面之间来回导航非常有效。那里没有问题。当您尝试使用后退按钮一直返回到index.html 时,会出现此问题。返回索引页面的路径包括在app.html(无哈希状态)处停止,主干路由器在此处尽职尽责地填充缺失的哈希状态,将您带回到app.html#search。同样,单击后退按钮将转到app.html,它会再次填充缺失的哈希状态……基本上,您现在陷入了循环,无法从页面返回。使用推送状态时也会发生同样的行为。
对于在默认页面 URL 之上自动启动自己的路由系统的应用来说,这似乎是一个潜在的常见问题。有谁知道避免这种情况的好方法吗?
【问题讨论】:
标签: javascript backbone.js browser-history