我注意到中的骨干应用我建,并想知道,如果这种行为意味着可以预期的,或者如果我做错了轻微的怪癖......包括根主干航线
我火了Backbone.history像这样:
Backbone.history.start({
root: '/au/store/',
pushState: true,
silent: true
});
为了向后/向前按钮导航触发的路线,我需要他们建立这样的:
router = Backbone.Router.extend({
routes: {
'au/store/:slug' : 'slug',
'au/store/?*params' : 'params'
}
});
这工作得很好。按照预期浏览浏览器历史记录到/au/store/?foo=bar
会触发'params'路线。
我有虽然是router.navigate()
不会触发路由问题:
router.navigate('?foo=bar', {trigger:true}); // route doesn't trigger
添加根到URL不起作用或者:
router.navigate('au/store/?foo=bar', {trigger:true}); // navigates to /au/store/au/store/?foo=bar
所以我的解决办法目前使用的是运行所有路线两次,一次以根为前缀并且一次没有:
routes: {
'au/store/:slug' : 'slug',
'au/store/?*params' : 'params',
':slug' : 'slug',
'?*params' : 'params'
}
现在,它会通过router.navigate()触发后退/前进路线。
但是,这似乎是一个黑客位,并一定会导致停机更复杂的路线轨迹问题......
任何人都可以向我解释什么,我做错了,或者为什么不表现出我对它的期待?
因此,这是固定的骨干0.9.2 ,它现在按照它应该的方式工作(如同在这个问题的两个答案中所述)。 – market 2012-06-06 02:37:14