So laden Sie die aktuelle Route mit dem eckigen Router 2 neu
Ich bin mit Winkel-2 mit hashlocation Strategie.
Wird die Komponente geladen, die route:
"departments/:id/employees"
So weit in Ordnung.
Nachdem ich einen erfolgreichen batch-speichern von mehreren bearbeiteten Tabellenzeilen ich will, um neu zu laden Sie die aktuelle route-url über:
this.router.navigate([`departments/${this.id}/employees`]);
Aber es passiert nichts, warum?
InformationsquelleAutor der Frage Pascal | 2016-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr navigieren() ändert nicht die URL, die schon auf die Adressleiste in Ihrem browser, der router hat damit nichts zu tun. Es ist nicht der router die Aufgabe, die Daten zu aktualisieren. Wenn Sie möchten, um die Daten zu aktualisieren, erstellen Sie eine service-Injektion in das Bauteil und rufen Sie die load-Funktion auf den service. Wenn die neuen Daten abgerufen werden, es wird die Ansicht aktualisieren, die über Bindungen.
InformationsquelleAutor der Antwort Yakov Fain
Ich fand diese Problemumgehung auf einem GitHub-feature-Anfrage für Winkel:
Ich habe versucht, das hinzufügen dieser zu meinem app.Komponente.ts
ngOnInit
Funktion, und es ist sicher gearbeitet. Alle weiteren Klicks auf denselben link jetzt lädt diecomponent
und Daten.Link zum original-GitHub-feature-request
Kredit geht an mihaicux2 auf GitHub.
Getestet habe ich diese auf version
4.0.0-rc.3
mitimport { Router, NavigationEnd } from '@angular/router';
InformationsquelleAutor der Antwort Arg0n
Dieser kann nun getan werden in Eckige 5.1 mit der
onSameUrlNavigation
Eigenschaft der Router config.Ich habe soeben einen blog zu erklären, wie hier aber das wesentliche ist wie folgt
https://medium.com/engineering-on-the-incline/reloading-current-route-on-click-angular-5-1a1bfc740ab2
In deine router-config aktivieren
onSameUrlNavigation
option, die Einstellung'reload'
. Dies bewirkt, dass der Router Feuer eines Veranstaltungs-Zyklus, wenn Sie versuchen zu navigieren, um eine route, die ist schon aktiv.In der route Definitionen, Satz
runGuardsAndResolvers
zualways
. Dieser teilt dem router mit, immer kick-off der Wachen und Resolver-Zyklen, feuert die zugeordneten Ereignisse.Schließlich, in der jede Komponente, die Sie aktivieren möchten zurückladen, die Sie benötigen, um die Ereignisse zu behandeln. Dies kann durch den Import der router, verbindlich auf die Ereignisse und den Aufruf einer Initialisierungs-Methode setzt den Zustand der Komponente und re-holt sich die Daten, wenn erforderlich.
All diese Schritte, sollten Sie haben die route nachladen aktiviert.
InformationsquelleAutor der Antwort Simon McClive
Wenig schwierig:
verwenden Sie denselben Pfad mit einigen dummy-params. Zum Beispiel-
InformationsquelleAutor der Antwort newari
Kiste eine Funktion im controller, leitet zu der erwarteten Niederlage, wie so
dann verwenden Sie es wie diese
dieser Funktion wird die Umleitung in ein dummy-route und schnell wieder in die Ziel-route, ohne dass der Benutzer es zu merken.
InformationsquelleAutor der Antwort theo sharkson
Winkel 2-4 route neu laden hack
Für mich, mit dieser Methode innerhalb einer root-Komponente (- Komponente, die auf jeder route) funktioniert:
InformationsquelleAutor der Antwort indreed
Gefunden, schnell und straight-forward-Lösung, die nicht erfordert zu basteln, die innere Funktionsweise von angular:
Grundsätzlich: erstellen Sie Einfach eine Alternative route mit dem gleichen Ziel-Modul und wechseln Sie einfach zwischen Ihnen:
Und hier unterstützt die Umschaltung Menü:
Hoffe es hilft 🙂
InformationsquelleAutor der Antwort Carli Beeli
In meinem Fall:
korrekt
InformationsquelleAutor der Antwort Anton Zimm
implementieren OnInit und rufen ngOnInit () - Methode für die route.navigate()
Sehen Sie ein Beispiel :
InformationsquelleAutor der Antwort Evandro Mendes
Gelöst, ein ähnliches Szenario durch die Verwendung einer dummy-Komponente und die route für
reload
die eigentlich eineredirect
. Dies ist definitiv nicht decken alle Benutzer-Szenarien, sondern arbeitete nur für mein Szenario.Den routing-Kabel zu fangen, alle urls mit einem Platzhalter:
Diesen zu nutzen, müssen wir nur noch neu laden, um die url, wo wir hin wollen:
InformationsquelleAutor der Antwort sabithpocker
Bei mir funktioniert hardcoding mit
InformationsquelleAutor der Antwort V. Kalyuzhnyu
abonnieren, die parameter der route änderungen
InformationsquelleAutor der Antwort Omar
Angenommen, dass die Komponente route, die Sie aktualisieren möchten, ist
view
dann verwenden Sie diesen:können Sie ein
debugger
innerhalb der Methode zu wissen, was die genaue route wird nach kommen navigieren Sie zu"departments/:id/employees"
.InformationsquelleAutor der Antwort Ebraheem Alrabee'
Dieser arbeitete für mich:
InformationsquelleAutor der Antwort maggic
Versuchen, diese
seiner alten Methode, aber Sie funktioniert auf allen eckige version, wo die Umleitung auf der route und aktualisieren Sie die Seite.
InformationsquelleAutor der Antwort Kavi Joshi
reload der aktuellen route in den Winkel-2 sehr nützlicher link zum Neuladen der aktuellen route in angualr 2 oder 4
in diesem definieren Sie zwei Verfahren, um dies zu tun
mehr siehe obigen link
InformationsquelleAutor der Antwort Rituraj ratan
benutzen Sie einfach die native javascript-reload-Methode:
InformationsquelleAutor der Antwort Augusto Claro