2016-10-23 3 views
1

Betrachten Sie die folgenden zwei Klassen:Ein Standard-Vater-Router mit Kind Router

import { Router, RouterConfiguration } from 'aurelia-router'; 

export class MainPage 
{ 
    router: Router; 

    configureRouter(config: RouterConfiguration, router: Router) 
    { 
     config.map([ 
      { route: ['', 'entities'], name: 'entities', moduleId: './entities/entities', nav: true, title: 'Entities' }, 
      { route: 'structures', name: 'structures', moduleId: './structures/structures', nav: true, title: 'Data Structures' }, 
     ]); 

     this.router = router; 
    } 
} 

Und

import { Router, RouterConfiguration } from 'aurelia-router'; 

export class Entities 
{ 
    private router: Router; 

    configureRouter(config: RouterConfiguration, router: Router) 
    { 
     config.map([ 
      { route: '', name: 'entities-list', moduleId: './list', nav: true, title: 'Entities' }, 
      { route: 'events', name: 'entity-events', moduleId: './events', nav: true, title: 'Events' }, 
     ]); 

     this.router = router; 
    } 
} 

Das Problem ist, dass; in einer Seite, wo die URL lautet: http://localhost/ wenn ich ausführen:

this.router.navigateToRoute('entity-events'); 

Ich erhalte den Fehler ERROR [app-router] Error: Route not found: events. Aber wenn ich die MainPage Klasse dies zu ändern:

import { Router, RouterConfiguration } from 'aurelia-router'; 

export class MainPage 
{ 
    router: Router; 

    configureRouter(config: RouterConfiguration, router: Router) 
    { 
     config.map([ 
      { route: 'entities', name: 'entities', moduleId: './entities/entities', nav: true, title: 'Entities' }, 
      { route: 'structures', name: 'structures', moduleId: './structures/structures', nav: true, title: 'Data Structures' }, 
     ]); 

     this.router = router; 
    } 
} 

In einer Seite, die URL http://localhost/entities liest, kann ich erfolgreich den gegebenen navigateToRoute Befehl auszuführen. Aber dann verliere ich den Wurzelweg!

Wie kann ich einen übergeordneten Router mit einer Standardroute und einige untergeordnete Routen unter der Standardroute haben?

Antwort

2

Wie wäre es mit einer Umleitungsroute, um die Standardroute auf entities umzuleiten? Ich bin auf Handy, nein, also kein Codebeispiel, aber die Dokumentation sollte es erklären.

+2

Danke Ashley, Sie haben immer Recht. – Mehran

+2

Sag meiner Freundin nicht, dass du das gesagt hast :-P –

Verwandte Themen