2017-10-16 5 views
0

modifier cela fonctionne lors du retrait du « nom » de ma sortie imbriquée et retrait de la propriété « de sortie » du module de routes. Est-il obligatoire d'avoir un point de vente sans nom avant d'utiliser ceux qui sont nommés?angulaire 4 routage: vues enfants imbriqués: « segment URL introuvable »

La configuration RouterMOdule suivante est en place:

const appRoutes: Routes = [ 

    // Public area: login (default) 
    { path: '', component: LandingPageComponent, 
    canActivate: [AuthAutoRedirectService], 
    children: [ 
     { path: '',  outlet: 'active-box', component: LoginComponent } 
    ] 
    }, 

    // Secure area 
    { path: 'secure', component: SecureAreaComponent, 
    canActivate: [AuthGuardService], 
    data: { roles: ['user'] }, 
    children: [ 

     // Dashboard (default) 
     { path: '',    outlet: 'main-content', component: DashboardComponent }, 

     // Resolutions 
     { path: 'resolutions', outlet: 'main-content', component: ResolutionsComponent }, 

     // Documents 
     { path: 'documents', outlet: 'main-content', component: DocumentsComponent }, 
    ] 
    }, 

]; 

@NgModule({ 
    imports:[ 
    RouterModule.forRoot(appRoutes) 
    ], 
    exports:[ 
    RouterModule // configured router module 
    ] 
}) 
  • router-outlet: affiche la page de connexion ou les allées et venues de zones sécurisées | - router-outlet name="main-content" affiche la page sélectionnée dans la zone sécurisée

    • localhost:4200/ sert correctement la page de connexion
    • localhost:4200/secure sert correctement la zone sécurisée, montrant le "tableau de bord", comme la page principale

la problème se pose lorsque vous essayez d'accéder à un autre enfant de la zone sécurisée:

core.es5.js:1020 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'secure/documents' 
Error: Cannot match any routes. URL Segment: 'secure/documents' 

Quelle pourrait être la cause?

Merci ...

Répondre

0

Ok, ce qui explique que: https://github.com/angular/angular/issues/14830

Vous devez avoir la sortie avec le primaire nom sur un modèle (si vous ne spécifiez pas le nom, il sera primaire par défaut). Les points de vente désignés sont auxiliaires.

La sortie avec le nom est une sortie "auxiliaire". Nécessite au moins une sortie "primaire" (alias "non nommée").