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

288
Vistas
Rutas secundarias angulares: ¿no puede navegar y borrar la ruta secundaria en la misma llamada de navegación?

Tengo un problema en el que parece que no puedo navegar a una nueva ruta y borrar una salida/ruta secundaria al mismo tiempo.

Llamar a esas dos acciones por separado funciona, pero se siente como una solución. ¿Hay alguna buena razón por la que deban hacerse como dos llamadas? ¿O hay un error en mi implementación? ¿O debería archivarlo como un problema de GitHub?

Estos funcionan de forma independiente:

 // Navigate to `/second` this._router.navigate(['/second']); // Clears the `popup` outlet this._router.navigate(['', {outlets: { popup: null }}]);

Pensé que esto debería funcionar, pero no borra la salida:

 this._router.navigate(['/second', {outlets: { popup: null }}]);

Mi solución actual es:

 this._router.navigate(['', {outlets: { popup: null }}]).then(() => { this._router.navigate(['second']); } );

Creé una prueba de concepto de plnkr : el código de navegación está en global-popup.component.ts

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Debe establecer explícitamente la ruta de salida principal como se muestra a continuación,

 public closeAndNav_singleCall() { return this._router.navigate([{ outlets: { primary : ['second'], popup: null } }]); }

¡Actualizó su Plunker!

¡¡Espero que esto ayude!!

over 4 years ago · Santiago Trujillo Denunciar

0

Lo anterior funciona cuando la navegación principal es absoluta en la ruta principal. El problema que tengo es: cómo hacer una navegación relativa en la ruta principal, mientras se borra la ruta secundaria.

He probado diferentes combinaciones pero ninguna parece funcionar:

comenzando en https://localhost:4200/one/two(popup:some/other)

 this.router.navigate([ '', { outlets: { primary: ['areaTwo', 'second'], popup: null, }, }, ]);

terminando en https://localhost:4200/areaTwo/second

Por lo tanto, borra la ventana emergente secundaria y realiza una navegación absoluta.

comenzando en https://localhost:4200/one/two(popup:some/other)

 this.router.navigate([ { outlets: { primary: ['areaTwo', 'second'], popup: null, }, }, ], { relativeTo: this.activatedRoute });

terminando en https://localhost:4200/one/two/areaTwo/second(popup:some/other)

Entonces hace un pariente en el primario, pero no borra el secundario.

Pero, ¿cómo podemos hacer algo como:

comenzando en https://localhost:4200/one/two(popup:some/other)

terminando en https://localhost:4200/one/two/areaTwo/second

over 4 years ago · Santiago Trujillo 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