我有一個設置了一些路由的路由器Backbone.js的如下:Backbone.js的路由器 - 與圖示路線還呼籲路線沒有圖示
routes : {
'a-route' : 'goToRoute',
'a-route/*splat' : 'goToRoute'
}
goToRoute : function(splat){
if(!splat) {
// do this
} else {
// do that with splat
}
當我做了
router.navigate('a-route', {trigger : true});
一切正常。但是,當我做
router.navigate('a-route/more', {trigger : true});
路由器發射兩次:先用圖示等於「未定義」,再進行第二次的時間與圖示等於「多」。
如果我註釋掉路由'a-route':'goToRoute',那麼一切都按照router.navigate('a-route/more')的方式工作......但我需要兩個路由 - with和沒有圖示。
根據文檔,我認爲我有這個設置正確,任何想法?
你已經有什麼問題了?只是從'splat === undefined'重定向到任何你想從那裏去的地方。 – jakee
根據是否有splat ==='more'或splat ==='undefined'有不同的佈局。目前,調用router.navigate('a-route/more',{trigger:true})會觸發兩個路由,因此它會在同一頁面上呈現兩個佈局 – Petrov
我的意思是,刪除'a-route:goToRoute'和'goToRoute'做'if(splat === undefined){justARoute(); } else {splatRoute(splat); }' – jakee