我现在在一些应用程序上遇到了这个问题,所以我想知道我是否对 Backbone 历史记录做错了什么。情况是这样的...
我有两页,比方说:
index.html
app.html
索引页只是一个普通的、平面的 HTML 页面,带有一个链接app.html
。在应用程序页面上,Backbone.history.start()
调用来启动哈希状态管理,该管理用于在应用程序页面上的两个视图之间切换,例如:
app.html#search
app.html#results
因此,在#search
and #results
页面效果很好。那里没有问题。当您尝试使用后退按钮一直返回到时,会出现此问题index.html
。返回索引页的路径包括在app.html
(无哈希状态),此时主干路由器会尽职尽责地填充缺失的哈希状态,让您回到app.html#search
。再次单击后退按钮将转到app.html
,它再次填充丢失的哈希状态...基本上,您现在陷入了循环并且无法从页面返回。使用推送状态时也会发生相同的行为。
对于在默认页面 URL 之上自动启动自己的路由系统的应用程序来说,这似乎是一个潜在的常见问题。有谁知道避免这种情况的好方法?
问题是app.html
自己没有做任何事情;因此,如果导航的话,可能会以某种方式破坏应用程序。
在这种情况下,您可以做的是将根路由重定向到另一个,只需将其用作默认页面:
routes: {
"": "search",
"results": "results"
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)