6 votes

Angular 5 EmptyError: aucun élément dans la séquence lors de la création de routes enfants

Je ne suis pas capable de naviguer de la page de connexion à la page du tableau de bord lorsque j'utilise children dans le routage comme suit :

const appRoutes: Routes = [
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent,pathMatch: 'full' },
{
  path: 'dashboard', pathMatch: 'full', /* canActivate: [AuthGuard], */ component: DashboardComponent , 
  children: [
    {
      path: 'online-submission/:moduleName', pathMatch: 'full', component: OnlineSubmissionComponent, 
      /* canActivate: [AuthGuard], */data:{
          breadcrumb: "online-submission"
      } ,
      children: [
        { path: 'batch-upload-members', pathMatch: 'full', component: BatchUploadMembersComponent, 
        /* canActivate: [AuthGuard], */data:{
            breadcrumb: "batch-upload-members"
        } },
        { path: 'select-members', pathMatch: 'full', component: SelectMembersComponent, 
        /* canActivate: [AuthGuard], */data:{
            breadcrumb: "select-members"
        } 
       }
      ] 
    }
  ] 
},
{ path: '**', component: PageNotFoundComponent }

];

Cependant, lorsque je supprime l'attribut children des routes et que je les rends frères, le routage fonctionne bien. Quel est le problème lorsque je crée des routes enfant ? J'utilise cli 1.6.0-rc.1

Qu'est-ce que j'ai essayé jusqu'à présent ?

  1. Commenter AuthGuard n'a pas fonctionné, donc le problème ne vient pas de cette partie

  2. J'ai vérifié que seulement lorsque je les ai comme des routes enfants (ce dont j'ai besoin pour créer des miettes de pain) ce problème se produit. Si toutes les routes sont des frères, le routage fonctionne correctement

  3. Utilisé {enableTracing:true} dans le RouterModule.forRoot où je trouve NavigationStart(id: 4, url: '/dashboard') qui semble être l'URL correcte pour DashboardComponent

  4. Recherché sur SO pour des questions au titre similaire mais aucune n'a abordé le même problème :

Angular 2.0.1 Router EmptyError: no elements in sequence

Problèmes de routage Angular2 - Erreur Zone aware No elements in sequence

Angular 2.0.1 Router EmptyError: no elements in sequence

13voto

Nasruddin Points 716

Ce bug est dû à la dernière version du Router d'Angular. Veuillez revenir à une version antérieure d'Angular ou ajouter pathMatch: 'full' à vos routes.

export const userRoutes = [
    { path: 'profile', component: ProfileComponent, pathMatch: 'full' },
    { path: 'login', component: LoginComponent, pathMatch: 'full' }
];

export const appRoutes = [
    { path: '', redirectTo: '/events', pathMatch: 'full' },
    { path: 'user', loadChildren: './user/user.module#UserModule' }
];

Vous pouvez trouver le problème ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X