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'
}
我在这里遗漏了一些东西。我认为我的问题很简单。 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'
}