2017-11-28 30 views
0

Das ist mein app-routing-module.tsAngular - URL geändert, aber nicht verladen

const routes: Routes = [ 
    { 
     path: '', 
     component: LayoutComponent, 
     children: [ 
      { 
       path: 'parent', 
       component: ParentComponent, 
       children: [ 
        { path: ':id/:name', component: ChildComponent } 
       ] 
      } 
     ] 
    }, 
]; 

ich eine Funktion geschrieben habe, um zu überprüfen, ob die URL mit einem statischen Wert in parent.component.ts arbeiten.

goToChild() { 
    this.router.navigate(['1/john'], { relativeTo: this.route }); 
} 

Und ich rufe die Funktion in parent.component.html.

<button class="btn btn-primary" (click)="goToChild()">Search</button> 

Wenn ich auf die Schaltfläche klicken, erhalte ich die richtige URL in der Adressleiste,

localhost:3000/parent/1/john 

Aber der Blick nie Lasten, es bleibt auf dem parent.component.html. Ich bin ziemlich neu in Angular und ich verwende Version 5.

Und wenn ich meine Routen so habe, funktioniert es gut.

const routes: Routes = [ 
    { 
     path: '', 
     component: LayoutComponent, 
     children: [ 
      { 
       path: 'parent', 
       component: ParentComponent 
      }, 
      { 
       path: 'parent/:id/:name', component: ChildComponent 
      } 
     ] 
    }, 
]; 

Es fühlt sich besser für mich die ChildComponent Route unter Kindern Array der ParentComponent zu setzen, aber wenn ich es tun. Nur die URL ändert sich, nicht die Ansicht.

Jede Hilfe wird sehr geschätzt.

Antwort

0

Können Sie die aktuelle parent.component.html freigeben? Haben Sie eine <router-outlet></router-outlet> innerhalb der Vorlage? So erlauben Sie die Kindernavigation

+0

Das war mein Fehler, ich habe den 'router-outlet' in meiner parent.component.html nicht hinzugefügt. Danke :) –

+0

Froh, zu helfen :) –

Verwandte Themen