我有一个使用 Backbone 0.5.3 的工作应用程序,它不再使用主干 0.9.2 工作。
我发现 Router.navigate() 出于某种原因没有调用我的路由。
这是我的路由器:
var Router = Backbone.Router.extend({
routes: {
'/mypage': 'mypage',
},
mypage: function() {
// show page ...
}
});
像这样手动调用路由可以正常工作:
Router.mypage()
我还尝试覆盖主干的 .navigate 方法来调试我的应用程序...
var Router = Backbone.Router.extend({
routes: {
'/mypage': 'mypage',
},
navigate: function(fragment, options) {
console.log("navigate called");
Backbone.history.navigate(fragment, options);
},
mypage: function() {
// show page ...
}
});
...似乎调用了 .navigate 但是...
Backbone.history.navigate(fragment, options);
...只是不调用路线。
我正在使用 PushState,这是我最初的电话:
Backbone.history.start({
root: '/',
pushState: true,
silent: true
});
已经在没有 root 和 silent 参数的情况下尝试过 - 没有成功。
同样:这适用于 Backbone 0.5.3。
感谢大家留下回复!
阿奇姆