Warum erlaubt Ember Router nur das Navigieren zu Blattrouten?

Was mir kürzlich bei Ember Router aufgefallen ist, ist, dass es nur das Navigieren zu Blattrouten ermöglicht - Routen ohne untergeordnete Routen.

Wenn ich die Dinge nicht falsch mache, scheint dies ein Fehler im Design zu sein.

Nehmen wir zum Beispiel Folgendes:

Ich habe eine Sammlung von Projekten, jedes Projekt hat viele Mitarbeiter, mit denen ich eine Benutzeroberfläche mit einem dreispaltigen Layout (so etwas wie Ihr Standard-Desktop-E-Mail-Client) erstellen möchte. Links habe ich eine Liste von Projekten, wenn ich auf a klicke Projekt In der mittleren Spalte wird eine Liste der Mitbearbeiter angezeigt. Wenn Sie auf einen Mitbearbeiter klicken, werden dessen Details in die rechte Spalte geladen.

Nun möchte ich mit dem Routing zu navigieren/projects/1 beim Klicken auf ein Projekt und auf/projects/1/collaborators/23 Wenn Sie auf einen Mitarbeiter klicken.

Hier ist ein Router, der den ersten Teil der verschachtelten Route veranschaulicht:

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

Wie Sie sehen werden, ruft Ember updateRoute erst dann auf (wenn Sie die URL festgelegt haben), wenn Sie zu wechselnroot.projects.show wegen dieser Liniehttps://github.com/emberjs/ember.js/blob/master/packages/ember-routing/lib/routable.js#L81

Hat noch jemand so etwas gemacht? Gibt es eine bessere Möglichkeit, dies zu gestalten?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage