Я написал приложение (все еще пишу) с несколькими маршрутизаторами в нем.
однако это не так, как вы думаете, это больше основано на модуле, а не на маршрутизаторе для каждого представления или что-то в этом роде.
например,
Допустим, в моем приложении есть два больших модуля: один для всех книг и один для пользователей.
книги имеют несколько видов (как и пользователи), вид списка, подробный вид, вид редактирования и т. д. и т. д.
поэтому каждый модуль имеет свой собственный маршрутизатор,
который обозначает собственный набор URL:
// 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)
});
Итак, два моих маршрутизатора не конкурируют за один и тот же маршрут, каждый из них обрабатывает свой собственный набор маршрутов.
редактировать
теперь, когда у меня было больше информации через Эльфа Штернберга, я знаю, что по умолчанию невозможно иметь несколько маршрутизаторов, совпадающих на одном маршруте. без обходного пути, такого как переопределение истории магистрали или использование пространств имен в маршрутах и регулярных выражений для соответствия этим маршрутам.
больше информации здесь: несколько подходящих маршрутов
спасибо эльфу Штернбергу за ссылку.