Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

269
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda