Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

268
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!