我现在在一些应用程序上遇到了这个问题,所以我想知道我是否对 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 之上自动启动自己的路由系统的应用程序,这似乎是一个潜在的常见问题。有谁知道避免这种情况的好方法?