Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

223
Vistas
Angular: enrutamiento dinámico con parámetro de enrutador disponible

Quiero hacer algo como esto en mi routing.module.ts (ver líneas marcadas por -->)

 export const routes: Routes = [ path: 'test/:action', component: CreateComponent, --> canActivate: ':action' == 'read' ? [Guard1] : [Guard1, Guard2], data: { --> screenAction: ':action' == 'read' ? 'read' : ':action', } ]

Tengo que usar la variable: acción porque se usa más tarde en el parámetro del enrutador. Gracias por tu ayuda !

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Bueno, lo que pides es posible, pero implementarlo puede ser un poco complejo.

En primer lugar, debe definir varias rutas en lugar de 1. Donde puede aplicar las condiciones que necesita.

 const routes: Routes = [ { path: '', redirectTo: '/home', pathMatch: 'full' }, { path: 'home', component: AppComponent }, { path: 'dummy1/:action', component: Dummy1Component, canActivate: [GuardRotaterGuard], }, { path: 'dummyx/:action', component: Dummy2Component, canActivate: [Guard1Guard], }, { path: 'dummyz/:action', canActivate: [Guard1Guard, Guard2Guard], component: Dummy2Component, }, ];

La ruta dummy1/:action es como una ruta de puerta de enlace. Cada solicitud al componente dummy2 debe ir desde aquí. Y luego necesita un protector de decisión/rotación que pueda decidir y rotar la ruta según los parámetros de la ruta. Debería verse como a continuación:

 canActivate( next: ActivatedRouteSnapshot, statex: RouterStateSnapshot ): Observable<boolean> | Promise<boolean> | boolean { const { action } = next.params; const state = { comesFrom: 'rotater' }; console.log("rotater",action); if (action === 'read') { // you can decide whatever you want here this.router.navigate(['/dummyx/read'], { state }); }else{ this.router.navigate(['/dummyz', action], { state }); // pass the action to the other route as a parameter } return true; }

Y aquí hay un ejemplo de Stackblitz en acción.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda