2012-07-01 88 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"