Eckige 2-routing umzuleiten, um mit Kind Strecken
Ich bin ein Neuling in Winkel-2. Ich will isolierte Module für jeden Teil meiner app. Zum Beispiel habe ich die AuthModule mit Standard-Komponenten - AuthComponent, die einen router Ventil für seine untergeordneten Komponenten (SignIn oder eine Anmeldung). Damit möchte ich realisieren, das folgende Szenario:
- Wenn Sie navigieren Sie zu /- Wurzel-aus-app - redirect /auth
- Nach redirect auf /auth - laden AuthComponent mit router Steckdose
- Nach AppComponent geladen - load default sign-in-Komponente, über die Umleitung auf /auth/sign-in
Aber wenn ich jetzt localhost/ich bekommen umgeleitet zu /auth, was ich will, aber die nächste Umleitung bei der Anmeldung nicht angezeigt.
Mein code:
app.routing
const routes: Routes = [
{path: '', redirectTo: '/auth', pathMatch: 'full'}
];
export const appRouting: ModuleWithProviders = RouterModule.forRoot(routes);
auth.routing
const routes: Routes = [
{
path: 'auth',
component: AuthComponent,
children: [
{path: '', redirectTo: 'sign-in', pathMatch: 'full'},
{path: 'sign-in', component: SignInComponent}
]
},
];
export const authRouting: ModuleWithProviders = RouterModule.forChild(routes);
auth.component.html
<div class="container">
<h1>Auth component</h1>
<router-outlet></router-outlet>
</div>
Ergebnis:
Umgebung
@Winkel/cli: 1.0.0-rc.2
Knoten: 7.7.1
os: win32, x64
InformationsquelleAutor der Frage Timofey Orischenko | 2017-03-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das gleiche problem. Es scheint eine Eckige tricks:
Wenn Sie entfernen Sie führende slash in "redirectTo" - Feld, wird Ihr Antrag weitergeleitet werden, erfolgreich zu auth/sign-in.
Verwenden Sie diese app.routing:
'redirectTo" value beginnt mit einem '/' = absoluter Pfad
'redirectTo" value startet, ohne ein '/' = relativer Pfad
Lesen Sie mehr darüber: https://vsavkin.com/angular-router-understanding-redirects-2826177761fc
P. S Meine Meinung ist, dass Ihre Struktur mehr richtig, dann YounesM. Übergeordneten Modul kann nicht halten Sie Kinder von Routen: "app" - Modul weiß nicht, dass die "auth" - Modul Kinder Modul "sign-in".
InformationsquelleAutor der Antwort Dmitriy Ivanko
So, wie es zu geschehen scheint, ist, dass, wenn Sie
redirectTo:'auth'
es versucht zu laden, die''
Kinder-Komponente und da es keine Komponente mit dem router-Steckdose leer ist.Nun scheint es, wie
{path: '', redirectTo: 'sign-in', pathMatch: 'full'}
hat keinen anderen Zweck dann umleiten zusign-in
so können Sie einfach umleiten, um/auth/sign-in
statt.app.Routen
auth.Routen
oder eine Komponente in Ihrem
''
Pfad statt umzuleiten.app.Routen
auth.Routen
InformationsquelleAutor der Antwort YounesM
Können Sie die Rück-Richtung, in Ihrer äußeren Modul, so wie dieses:
Brauchen Sie nicht, um einen leeren Pfad " in Ihrer untergeordneten Komponente im Fall, dass Sie möchten, navigieren Sie zu diesem mit einer richtigen Pfad
InformationsquelleAutor der Antwort bitscanbyte
Ist es ganz einfach:
InformationsquelleAutor der Antwort Paco
Hierzu können Sie in Ihrem Kind die route:
InformationsquelleAutor der Antwort papiliond
Ich habe das gleiche problem, aber keine der oben genannten Antworten scheint eine gute Auflösung. In meinem code , ich schließe mich der router Veranstaltungen und schließlich, es zu lösen.
code in AuthComponent Konstruktor:
InformationsquelleAutor der Antwort johney