Dlaczego Ember Router pozwala jedynie na nawigację w celu trasowania tras?

Coś, co zauważyłem ostatnio w Ember Router, to tylko to, że umożliwia nawigację do tras liśćmi - trasy bez tras potomnych.

Teraz, chyba że robię coś niepoprawnie, wygląda to na błąd / błąd w projekcie.

Weźmy na przykład coś takiego:

Mam kolekcję projektów, każdy projekt ma wielu współpracowników, z tym chcę zbudować interfejs użytkownika z układem 3 kolumn (coś jak twój standardowy klient poczty elektronicznej), gdzie po lewej stronie mam listę projektów, po kliknięciu projekt środkowa kolumna pokazuje listę współpracowników, a kliknięcie współpracownika ładuje jego szczegóły do ​​prawej kolumny.

Teraz z routingiem, do którego chcę nawigować/projects/1 po kliknięciu na projekt i na/projects/1/collaborators/23 po kliknięciu współpracownika.

Oto router ilustrujący pierwszą część zagnieżdżonej trasy:

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

Jak zobaczysz, Ember nie wywoła updateRoute (ustaw adres URL) aż do przejścia naroot.projects.show z powodu tej liniihttps://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/routable.js#L81

Czy ktoś inny zrobił coś takiego? Czy jest lepszy sposób na zaprojektowanie tego?

questionAnswers(2)

yourAnswerToTheQuestion