es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Enrutamiento angular para prefijo con parámetro de ruta

Quiero implementar la página de perfil de usuario. Sería simple utilizar la ruta

/perfil/usuario123 utilizando:

app-routing.module
typescript
{
path: 'perfil',
loadChildren: () => import('./modules/profile/profile.module').then(m => m.ProfileModule)
},

profile-routing.module
typescript
{
path: ':nombreUsuario',
component: ProfileComponent
},

sin embargo, quiero hacer una URL más llamativa como /@usuario123.

Desafortunadamente, no encontré ninguna pista de cómo hacerlo. Intenté lo siguiente:

app-routing.module
typescript
{
path: '@:nombreUsuario',
loadChildren: () => import('./modules/profile/profile.module').then(m => m.ProfileModule)
},

profile-routing.module
typescript
{
path: '',
component: ProfileComponent
},

pero no funcionó.

Solo se me ocurre una cosa, que es utilizar un Guard que verifique el prefijo ‘@’, de lo contrario redirigir a la página /no-encontrado.

¿Algún idea de cómo hacer el enrutamiento usando la forma “Angular”?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no hay una característica incorporada en Angular para este tipo de enrutamiento de URL elegante. Utilizar un guard para verificar el prefijo “@” y redirigir a una página de no encontrada si no está presente es una solución viable para lograr este comportamiento de enrutamiento. Otra opción podría ser utilizar una función personalizada de coincidencia de URL en el módulo de enrutamiento para encontrar el patrón del prefijo “@” y extraer el nombre de usuario. Esto requeriría más código personalizado y puede que no valga la pena el esfuerzo para este caso de uso en particular.

Comments are closed.