javascript - Använda CanActivate i kombination med omdirigering?


Det verkar som att CanActivate inte kan användas i kombination med en omdirigering baserat på detta Stackblitz-experiment.

Det här är utdraget som testas.

{ path: 'module', loadChildren: 
'./module#ComponentModule'},
{ path: '', 
    pathMatch: 'full', 
    canActivate: [AuthGuard], 
    redirectTo: 'module' },
];

Det jag förväntade mig skulle hända är att innan Angular-router faktiskt slutför omdirigeringen, kör den CanActivate skyddet.

Men det körs aldrig. Detta betyder att vi inte kan använda CanActivate i kombination med redirect.

Anledningen till att det skulle vara användbart är att om det fungerade skulle Angular fortfarande kunna förladda modulen som skyddas, ändå är den skyddad, så vi tillåter inte åtkomst till den förrän villkoren för vakten uppfylls.

Jag skulle vilja begära att Angular omstrukturerar routern så att detta fungerar, men först vill jag försäkra mig om att min tolkning av den nuvarande semantiken är korrekt.

Om jag gjorde några misstag i min tolkning eller i uppsättningen av demon, vänligen låt mig veta.

Detta är i praktiken funktionförfrågan. Vänligen rösta på den om du gillar konceptet