2012-07-01 30 views
2

我目前已经为我的Backbone应用定义了多路由器(非Marionette呢)。骨干中的多个路由器(也许是木偶)应用

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

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

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

回答

9

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

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

所以没有必要跟踪路由器的导航方法。你可以直接调用Backbone.history.navigate。

Backbone.history.navigate "auth/login"