Angular2 RC1 untergeordnete Routen definiert, aber nicht erkannt

8

Was früher für beta / ... funktioniert hat, funktioniert nicht mehr. Wie mache ich mit dem neuen neuen RC1-Router das Child-Routing?

Ordnerstruktur

%Vor%

Die geplante Navigation ist

%Vor%

app.component.ts Routen

%Vor%

Sobald die Anmeldung erfolgreich war, wird die Login-Klasse

%Vor%

Von HomeComponent.ts kann ich

tun %Vor%

So weit, so gut, kein Problem. In held-shell.component.ts habe ich untergeordnete Route

%Vor%

in held-shell.component.html

%Vor%

Beachten Sie, dass der Pfad nur 'heroes' sein kann. Wenn ich zu [routerLink] und @Routes zu '/heroes' wechsel, wird es nicht funktionieren. Kann etwas helfen, warum zu erklären?

Und so kann es jetzt die Kinderrouten erkennen. Klick auf routerLink Helden zeigen die Heldenliste an. Aber wenn ich es von HeroesComponent durch

beschrieben habe %Vor%

es blies mit

auf %Vor%

Das ist sehr seltsam. Wenn es die Kinderrouten nicht erkennt, wie kann ich überhaupt in HeroesComponent einsteigen? Und jetzt sind die Kinderwege einfach verschwunden.

Wenn ich

verwende %Vor%

es wird einen anderen Fehler geben

%Vor%

Bedeutet das, dass alle untergeordneten Komponenten @Routes wiederholt haben müssen?

    
Shawn 09.05.2016, 23:09
quelle

1 Antwort

8
  

Beachten Sie, dass der Pfad nur "Helden" sein kann. wenn ich zu [routerLink] und @Routes zu '/ heroes' wechsele, wird es nicht funktionieren. Kann etwas helfen, warum zu erklären?

Tatsächlich können Pfade im Child-Router "/" als Präfix enthalten, aber wenn routerLink in "/ helders" geändert wird, funktioniert das nicht, weil das Präfix "/" im Navigationspfad mit root router aufgelöst wird habe keinen "/ Helden" -Pfad. Der Pfad "Helden" funktionierte, da er mit dem aktuellen Router aufgelöst wird und Sie diesen Pfad im aktuellen untergeordneten Router definiert haben.

  

this._router.navigate (['hero /' + hero._id]);

Der Aufruf von "navigate" ohne ein Segment wird mit dem Root-Router gelöst. Es bedeutet, dass Sie absolute Navigation machen wollen. Offensichtlich wird das nicht funktionieren.

  

this._router.navigate (['hero /' + hero._id], this.currSegment);

Dies hat auch nicht funktioniert, da Sie sich in HeroesComponent und "heroes" -Segment befinden. Es gibt keine Router-Konfiguration in der Komponente. Der korrekte Anruf sollte lauten:

%Vor%     
Vu Than 10.05.2016, 04:57
quelle

Tags und Links