Backbone(也许是Marionette)应用程序中的多个路由器

时间:2012-07-01 12:57:00

标签: backbone.js marionette

我目前为我的Backbone应用程序定义了多路由器(非 Marionette )。

authRouter = new AuthRouter()
usersRouter = new UsersRouter()
...

# then to use them
authRouter.navigate "auth/login"
usersRouter.navigate "users/changePassword"

正如您所看到的,我正在使用变量进行导航。所以我必须知道要调用哪个路由器。是否有可能以某种方式将代码组织到单独的类中,但是当我想要导航时,只需调用appRouter.navigate "something"而不需要知道它是哪个路由器? Marionette建议不要使用大型路由器,但没有推荐的方式/示例

1 个答案:

答案 0 :(得分:9)

如果您查看Backbone的带注释的源代码,您会注意到调用myRouter.navigate只不过是对Backbone.history.navigate的转发方法调用

http://backbonejs.org/docs/backbone.html#section-114

因此无需跟踪导航方法的路由器。您可以直接调用Backbone.history.navigate。

Backbone.history.navigate "auth/login"