我目前为我的Backbone应用程序定义了多路由器(非 Marionette )。
authRouter = new AuthRouter()
usersRouter = new UsersRouter()
...
# then to use them
authRouter.navigate "auth/login"
usersRouter.navigate "users/changePassword"
正如您所看到的,我正在使用变量进行导航。所以我必须知道要调用哪个路由器。是否有可能以某种方式将代码组织到单独的类中,但是当我想要导航时,只需调用appRouter.navigate "something"
而不需要知道它是哪个路由器? Marionette建议不要使用大型路由器,但没有推荐的方式/示例
答案 0 :(得分:9)
如果您查看Backbone的带注释的源代码,您会注意到调用myRouter.navigate
只不过是对Backbone.history.navigate
的转发方法调用
http://backbonejs.org/docs/backbone.html#section-114
因此无需跟踪导航方法的路由器。您可以直接调用Backbone.history.navigate。
Backbone.history.navigate "auth/login"