【问题标题】:backbonejs router first query parameter骨干网路由器第一个查询参数
【发布时间】:2017-09-18 23:32:33
【问题描述】:

我正在尝试添加一个查询参数作为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/#tab/personal 之类的路由,但我想要一些 baseurl/#personal,我不想从 tab 开始。我尝试过 ":tabname" 路由,但它不起作用。

任何帮助将不胜感激。

【问题讨论】:

  • 您是否尝试为每个选项卡创建不同的路径?
  • 这应该可以,但是没有任何通用的方法来实现这一点,而不是硬编码每个选项卡的路由吗?
  • @SebastianLorenzo 您的建议为我解决了问题。如果你能回答这个问题,那么我会接受你的回答作为解决方案。

标签: backbone.js backbone-routing


【解决方案1】:

解决问题的最佳方法之一是为每个选项卡使用不同的路径。

按照您的代码,它将是:

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();

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2014-11-05
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多