2017-04-21 18 views
0

我想添加一個查詢參數作爲backbonejs路由中的第一個參數,但沒有運氣。backbonejs路由器第一個查詢參數

下面是我的路由器配置。

TabsRouter = Backbone.Router.extend({ 
    routes: { 
     "tab/:tabname": "goToTab", 
     "*default": "defaultTab" 
    }, 

    goToTab: function(tabName) { 
     view.renderTab(tabName); 
    }, 

    defaultTab: function() { 
     view.renderTab('markets'); 
    } 
}); 
tabsRouter = new TabsRouter(); 

上面的代碼工作正常,我可以訪問喜歡的BaseURL /#標籤/個人的路線,但我想要的東西的BaseURL /#個人,我不想開始標籤。我曾嘗試「:tabname」路線,但它不工作。

任何幫助,將不勝感激。

+0

您是否嘗試爲每個標籤創建不同的路徑? – slorenzo

+0

這應該工作,但沒有任何通用的方式來實現這一點,而不是硬編碼每個標籤的路線? – MA1

+1

@SebastianLorenzo你的建議爲我解決了這個問題。如果你能回答這個問題,那麼我會接受你的答案作爲解決方案。 – MA1

回答

0

您可以解決麻煩的最佳方法之一是爲每個選項卡使用不同的路徑。

按照你的代碼,這將是:

TabsRouter = Backbone.Router.extend({ 
    routes: { 
     "tab/first-tab": "firstTabView", 
     "tab/second-tab": "secondTabView", 
     "tab/third-tab": "thirdTabView", 
     "*default": "defaultTab" 
    }, 

    firstTabView: function() { 
     view.renderFirstTab(); 
    }, 
    secondTabView: function() { 
     view.renderSecondTab(); 
    }, 
    thirdTabView: function() { 
     view.renderThirdTab(); 
    }, 
    defaultTab: function() { 
     view.renderDefault(); 
    } 
}); 
tabsRouter = new TabsRouter(); 

希望它可以幫助你。