我寫了一個應用程序(仍在寫)與其中的多個路由器。然而,它不像你想象的那樣,它基於更多模塊而不是每個視圖的路由器或類似的東西。
例如, 說我在我的應用程序中有兩個大模塊,1個處理所有書籍,1個處理用戶。 書有多個視圖(如做用戶),列表視圖,詳細視圖,編輯視圖,等等等等...... 所以每個模塊都有自己的路由器, 它代表了自己的一套網址:
// user module...
var userRouter = Backbone.Router.extend({
routes: {
"users": "loadUsers",
"users/add": "addUser",
"user/:id": "loadUser",
"user/:id/edit": "editUser"
}
// ... rest dropped to save the trees (you never know if someone prints this out)
});
// book module
var bookRouter = Backbone.Router.extend({
routes: {
"books": "loadBooks",
"books/add": "addBook",
"book/:name": "loadBook",
"book/:name/edit": "editBook"
}
// ... rest dropped to save the trees (you never know if someone prints this out)
});
所以,它不像我的兩臺路由器在爭奪相同的路由,他們每個人都處理他們自己的一組路由。
編輯 現在,我通過精靈斯騰有更多的信息,我知道這是不是默認可能具有相同的路線上多個路由器匹配。沒有像重寫骨幹歷史或在路由和正則表達式中使用命名空間來匹配這些路由的解決方法。 更多的信息在這裏:multiple matching routes 感謝Elf Sternberg的鏈接。
路由器對象的要點是將一個視圖集合與給定的URL關聯起來,特別是散列之後的部分。這意味着作爲一個外部可導航(和可收藏)的目標。爲什麼有多個路由器是有意義的?你能更清楚地解釋你想達到的目標嗎? –
我希望有具體的問題。 –
偉大的問題安德烈亞斯,這絕對是更多的人隨着他們的應用程序成長而要嘗試做的事情。 –