2017-07-28 2 views
1

Hallo Ich habe meine Routen bekam wie dieseAngular 2 - Kind Route haben eine andere Mutterkomponente übergeordnete Komponente

const routes: Routes = [ 
 
    { path: '', component: parentComponent, canActivate: [ LoggedInGuard ], children: [ 
 
     { path: 'profile', component: ProfileComponent }, 
 
     { path: 'sign-out', component: SignOutComponent }, 
 
     { path: 'set-password', component: SetPasswordComponent }, 
 
     { path: '', canActivate: [ LastLoginDateGuard ], children: [ 
 
      { path: 'admin', canActivate: [ adminGuard ], children: [ 
 
       { path: 'event/:event_id', component: appComponent, children: [ 
 
        { path: '', component: EventComponent } 
 
       ]}, 
 
      ]}, 
 
     ]}, 
 
     { path: '', redirectTo: '/sign-in', pathMatch: 'full' }, 
 
    ]}, 
 
    { path: '', component: AppComponent }, 
 
    { path: 'home', component: HomeComponent }, 
 
    { path: 'sign-in', component: SignInComponent }, 
 
    { path: 'sign-up', component: SignUpComponent }, 
 
    { path: '**', component: PageNotFoundComponent } 
 
];

einrichten Datei Was ich brauche für die event/:event_id Strecke ist zu hat eine andere übergeordnete Komponente zu den normalen parentComponent

{ path: 'admin', canActivate: [ adminGuard ], children: [ 
 
    { path: 'event/:event_id', component: appComponent, children: [ 
 
    { path: '', component: EventComponent } 
 
    ]}, 
 
]},

Ich möchte im Grunde nur die übergeordnete Komponente von event/:event_idappComponent sein, nicht die parentCompnent

Antwort

1

Für, dass Sie ganze Strecke Teil von ParentComponent Kind entfernen müssen und eine andere machen mit Eltern von AppComponent,

Bitte versuchen Sie es diese Route Einstellung:

const routes: Routes = [ 
    { path: '', component: parentComponent, canActivate: [ LoggedInGuard ], children: [ 
     { path: 'profile', component: ProfileComponent }, 
     { path: 'sign-out', component: SignOutComponent }, 
     { path: 'set-password', component: SetPasswordComponent }, 
     { path: '', redirectTo: '/sign-in', pathMatch: 'full' } 

    ]}, 

    { path: '', canActivate: [ LoggedInGuard ], children: [ 
     { path: '', canActivate: [ LastLoginDateGuard ], children: [ 
      { path: 'admin', component: appComponent, canActivate: [ adminGuard ], children: [ 
       { path: 'event/:event_id' , children: [ 
        { path: '', component: EventComponent } 
       ]}, 
      ]}, 
     ]} 
    ]}, 

    { path: '', component: AppComponent }, 
    { path: 'home', component: HomeComponent }, 
    { path: 'sign-in', component: SignInComponent }, 
    { path: 'sign-up', component: SignUpComponent }, 
    { path: '**', component: PageNotFoundComponent } 
]; 
+0

ich dachte ich, dass es so tun konnte nur meine Routen zu machen Datei größer – SCRATK

+0

@S CRATK, dann können Sie Lazyloading verwenden und die Routen-Dateien trennen. –

Verwandte Themen