Почему Ember Router разрешает только навигацию по конечным маршрутам?
Что-то, что я недавно заметил в Ember Router, это то, что он позволяет только перемещаться по конечным маршрутам & # x2014; маршруты без дочерних маршрутов.
Теперь, если я не делаю что-то неправильно, это похоже на ошибку / ошибку в дизайне.
Давайте возьмем, например, что-то вроде этого:
У меня есть коллекция проектов, у каждого проекта есть много соавторов, с этим я хочу создать пользовательский интерфейс с 3 колонками (что-то вроде стандартного почтового клиента на рабочем столе), где слева у меня есть список проектов, когда я нажимаю на В среднем столбце проекта отображается список соавторов, и при нажатии на соавтора его данные загружаются в правый столбец.
Теперь с маршрутизацией я хочу перейти к/projects/1
при нажатии на проект и на/projects/1/collaborators/23
при нажатии на соавтора.
Вот маршрутизатор, иллюстрирующий первую часть вложенного маршрута:
App.reopen(
Router: Ember.Router.extend(
enableLogging: true
location: 'hash'
root: Ember.Route.extend(
index: Ember.Route.extend(
route: '/'
redirectsTo: 'projects'
)
projects: Ember.Route.extend(
# This route is not routable because it is not a leaf route.
route: '/projects'
connectOutlets: (router) ->
# List projects in left column
router.get('applicationController').connectOutlet('projects', App.projects)
show: Ember.Route.extend(
# This route is routable because it is a leaf route.
route: '/:project_id'
connectOutlets: (router, project) ->
# Render the project into the second column, which actually renders
# a list of collaborators.
router.get('projectsController').connectOutlet('project', project)
)
)
)
)
)
Как вы увидите, Ember не вызывает updateRoute (задает URL) до перехода кroot.projects.show
из-за этой линииhttps://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/routable.js#L81
Кто-нибудь еще делал что-нибудь подобное? Есть ли лучший способ создать это?