backbone router好几个root,这个怎么加载啊?

backbone router several root, how to load this properly?

我在这里遗漏了一些东西。我认为我的问题很简单。 mysite.com/app 和 mysite.com/transaction 都加载不同的 html 页面,但它们加载相同的路由器。

对于每种情况,我都需要按顺序编写路由器 mysite.com/app/#/someparams 触发 'app' 函数 mysite.com/transaction/#/someparams 触发 'transaction' 函数。 (有或没有#我不在乎,但这就是它对我有用的方式=/)

如果我写:

routes: {
    'app':'app',
    'app/:params':'app',
    'transaction':'transaction',
    'transaction/:params': 'transaction'
}

Backbone.history.start({
    pushState: true 
});

那么 mysite.com/app/#/params 或 mysite.com/transaction/#/params 将不会触发所需的功能。

如果我这样写:

     Backbone.history.start({
        pushState: false,
        root:'/app'
    });

那么 /app 的参数就可以了,但 /transaction 的参数就不行了。该怎么办 ?我很确定我遗漏了一些简单的东西,但我现在有点困惑..

感谢您的帮助

您的路线在您定义的两条路线中只需要一个参数。

mysite.com/app/#/params 匹配 app/:params # 在这里作为参数传入。

哈希也应该在路由映射之前。

mysite.com#app/params 根据您的地图,这将匹配 backbone 预期的路线。

您可以使用可选功能只使用 2 条路线。

routes: {
    'app(/:params)':'app',
    'transaction(/:params)':'transaction'
}