2012-08-25 61 views
2

由於主幹沒有辦法做大部分事情,所以我對很多東西感到困惑。其中一件事是通過我的應用程序導航的正確方法。Backbone.js和導航

我意識到BB路由器有一個'.navigate'方法可以用來推動URL和觸發路由。現在,由於我的應用程序有多個路由器,我不確定在一個或其他路由器上調用'.navigate'之間有什麼區別。

這是我的路由器

new Etaxi.Routers.System() 
new Etaxi.Routers.Header() 
new Etaxi.Routers.Videos() 
new Etaxi.Routers.News() 

現在我能做的

router = Etaxi.Routers.System() 
// or i could do 
router = Etaxi.Routers.Header() 

router.navigate(url) 

有沒有我用我的應用程序的全球導航哪個路由器有什麼區別?這對我來說似乎很奇怪。

回答

10

你呼叫的路由器沒有區別。事實上,當你有多個路由器時,我建議不要調用特定的路由器。或者,就此而言,根本不用打電話給路由器。如果您查看路由器的navigate方法的源代碼,您會發現它只能傳遞到Backbone.history.navigate。所以才稱之爲直接:

Backbone.history.navigate(url)

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

我在幾乎所有我的應用程序使用多個路由器,這是我如何調用該方法navigate。它工作的很好,並避免混淆哪個路由器調用。