我之前已经问过这个问题,但是我没有看到任何解决方案:
所以我使用Cordova 2.5在iOS 6.1.2上构建iPad应用程序
我的app.coffee:
jQuery ->
class window.AppRouter extends Backbone.Router
routes: {
'': 'index',
':parent/:child/': 'childView',
':id/': 'detailView',
},
index: =>
$("#navbar .title").text("Flight Centre's Choices")
view = new fc.main.View
view.render()
childView: (parent, child) =>
view = new fc.main.View(parent:parent, child:child)
view.render()
detailView: (id) =>
view = new fc.main.Detail(id:id)
view.render()
window.app = new AppRouter();
Backbone.history.start();
第一个索引视图成功加载并按原样显示
现在点击其中一个链接让我们说打开childView,它无法加载页面:
2013-03-20 16:56:13.684 Flight[1158:907] Resetting plugins due to page load.
2013-03-20 16:56:13.689 Flight[1158:907] Resetting plugins due to page load.
2013-03-20 16:56:13.694 Flight[1158:907] Failed to load webpage with error: Frame load interrupted
用户点击的链接如下所示:
/#/foo/bar/
我的Mac上的Chrome浏览器中的所有内容都按预期工作。
我不知道这里发生了什么!!
答案 0 :(得分:35)
该死的这段时间,答案是如此愚蠢和简单。
而不是将html中的链接作为:
/#/foo/bar/
应该只是
#/foo/bar/
这是有道理的,领先/页面会重新加载,这就是我犯错的原因。
希望它有助于某人
答案 1 :(得分:0)
我可以使用window.location.hash
来解决它