Ach*_*ner 5 javascript backbone.js backbone-routing
我有一个使用Backbone 0.5.3的工作应用程序,它不再使用主干0.9.2.
我发现Router.navigate()由于某种原因没有调用我的路由.
这是我的路由器:
var Router = Backbone.Router.extend({
routes: {
'/mypage': 'mypage',
},
mypage: function() {
// show page ...
}
});
Run Code Online (Sandbox Code Playgroud)
像这样手动调用路由工作正常:
Router.mypage()
Run Code Online (Sandbox Code Playgroud)
我还试图覆盖骨干的.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 ...
}
});
Run Code Online (Sandbox Code Playgroud)
......似乎.navigate被调用但是......
Backbone.history.navigate(fragment, options);
Run Code Online (Sandbox Code Playgroud)
......只是不打电话给路线.
我正在使用PushState,这是我的初始调用:
Backbone.history.start({
root: '/',
pushState: true,
silent: true
});
Run Code Online (Sandbox Code Playgroud)
已经尝试过没有root和silent参数 - 没有成功.
再次:这使用Backbone 0.5.3.
感谢大家的回复!
阿希姆
来自精美手册:
延长
Backbone.Router.extend(properties, [classProperties])首先创建自定义路由器类。[...] 请注意,您需要避免在路由定义中使用前导斜杠:
我猜你只需要从你的 中删除前导斜杠routes,例如:
routes: {
'mypage': 'mypage',
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1898 次 |
| 最近记录: |