Para mi aplicación web Angular, estoy tratando de lograr un proceso de enrutamiento básico de la siguiente manera;
Aquí está el fragmento de código de mi " app-routing.module.ts ";
const routes: Routes = [ { path: 'login', component: LoginComponent }, { path: 'landing', component: LandingComponent, canActivate: [AuthGuard]}, { path: '', redirectTo: 'landing', pathMatch: 'full' }, { path: '**', component: PageNotFoundComponent, pathMatch: 'full' } ];Este es mi " login.component.ts ";
this.authService.login(username, password).subscribe({ next: data => { ... this.router.navigate(['landing']); }, error: err => { ... } });Y este es el " auth.guard.ts ";
canActivate(): boolean { if (!this.tokenService.getToken()) { this.router.navigateByUrl('login'); return false; } return true; }Estos son los problemas a los que me enfrento;
Así que creo que estoy malinterpretando algunas partes sobre el enrutamiento, pero aún no pude encontrar ninguna respuesta. ¿Alguna idea de cómo resolver mis problemas?
Necesitas usar / antes de la ruta.
En "login.component.ts"
this.router.navigate(['/landing']);En "auth.guard.ts"
this.router.navigateByUrl('/login');Obtenga más información sobre la ruta de enlace relativa .