Por que o Ember Router permite apenas navegar pelas rotas das folhas?

Algo que eu notei recentemente com o Ember Router é que ele permite apenas navegar pelas rotas das folhas - rotas sem rotas secundárias.

Agora, a menos que eu esteja fazendo as coisas incorretamente, isso parece um bug / erro no design.

Vamos pegar, por exemplo, algo assim:

Eu tenho uma coleção de projetos, cada projeto tem muitos colaboradores, com isso eu quero construir uma UI com um layout de 3 colunas (algo como seu cliente de e-mail padrão) onde à esquerda eu tenho uma lista de projetos, quando clico em um projetar a coluna do meio mostra uma lista de colaboradores e clicar em um colaborador carrega seus detalhes na coluna da direita.

Agora com o roteamento eu quero navegar para/projects/1 ao clicar em um projeto e em/projects/1/collaborators/23 ao clicar em um colaborador.

Aqui está um roteador ilustrando a primeira parte da rota aninhada:

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)
        )
      )
    )
  )
)

Como você verá, a Ember não chama updateRoute (configure o URL) até a transição pararoot.projects.show por causa dessa linhahttps://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/routable.js#L81

Alguém mais fez algo assim? Existe uma maneira melhor de projetar isso?

questionAnswers(2)

yourAnswerToTheQuestion