Ich zeige eine Reihe von Elementen an, auf die Sie klicken können, um Sie zur nächsten Route zu bringen. Sie können auch auf ein Popup auf dieser Seite klicken. Wenn Sie auf das Popup klicken und dann auf eines der Elemente klicken, möchte ich das Popup löschen, bevor die nächste Route angezeigt wird.
%Vor%Ich verstehe Versprechungen nicht wirklich, also bin ich mir nicht sicher, ob ich es in der richtigen Struktur geschrieben habe, aber dieser Code funktioniert nicht, da er immer zur nächsten Route mit dem Popup in der URL navigiert. Ich habe versucht, es in der gleichen Struktur außerhalb des Versprechens zu tun, aber es wird immer zu der: ID mit dem (Popup) immer noch in der URL navigieren.
Ich habe auch versucht: this.router.navigate(['/', id, {outlets: {popup: null}}])
.
Gibt es eine Funktion innerhalb des Routers, die ein absolutes Neuschreiben der URL erlaubt? Oder gibt es eine Möglichkeit, sicherzustellen, dass das Popup aus der URL entfernt wird, bevor zu der ID navigiert wird:
Hoffnung Problem ist klar - Hilfe wird sehr geschätzt!
Es gibt einen Fehlerbericht , der zu GitHub über dieses Verhalten eingereicht wurde.
Demnach sollte this.router.navigate([{ outlets: { popup: null } });
funktionieren.
Es ist jedoch auch möglich, die URL explizit über this.router.navigateByUrl('/')
festzulegen, wodurch alle benannten Steckdosen deaktiviert werden sollten.
Befolgen Sie das GitHub-Problem, da es erst kürzlich dem Backlog hinzugefügt wurde und bald in einer kommenden Version von Angular behoben sein könnte.
Alternativ finden Sie eine weitere mögliche Problemumgehung in diesem Problem :
%Vor%Tags und Links angular angular2-routing