Angular2 router 2.0.0 lädt Komponenten nicht neu, wenn dieselbe URL mit anderen Parametern geladen wurde?

8

Ich habe dies in meiner .routing.ts Datei

%Vor%

Meine PageComponent -Datei überprüft den ID-Parameter und lädt die Daten entsprechend. In früheren Versionen des Routers, wenn ich von / Seite / 4 nach / Seite / 25 ging, würde die Seite neu geladen und die Komponenten würden aktualisiert.

Wenn ich jetzt versuche, zu / page / X zu navigieren, wo X die ID ist, lädt es immer nur das erste Mal, dann ändert sich die URL, aber die Komponenten "laden" nicht erneut.

Gibt es etwas, das übergeben werden muss, um das Neuladen meiner Komponenten zu erzwingen und das ngOnInit-Ereignis aufzurufen?

    
Gillardo 16.09.2016, 13:55
quelle

2 Antworten

15

update 2

Diese Antwort ist nur für eine seit langem abgekündigte Router-Version.

Siehe Ссылка für die Vorgehensweise im aktuellen Router.

update 1

Das ist jetzt behoben (Angular 2.3) für den neuen Router von Ссылка , was es ermöglicht, eine benutzerdefinierte Wiederverwendungsstrategie bereitzustellen .

Für ein Beispiel siehe auch Ссылка

Original

Ссылка

Das ist ein bekanntes Problem. Momentan gibt es keine Möglichkeit, den Router die Komponente bei Parameter-only-Routenänderungen neu zu erstellen.

Sie diskutierten Pläne für die Implementierung einiger Wiederverwendungsstrategien.

Sie können params-Änderungen abonnieren und Ihren Code dort ausführen, anstatt in ngOnInit()

    
Günter Zöchbauer 16.09.2016, 13:57
quelle
-1

Dieser Code funktioniert für beide Winkel 2 und 4. Sie müssen den Param wie folgt abonnieren

%Vor%

Angenommen, Ihre Seite wird nicht neu geladen, Sie können den Wert mithilfe von ngOnDestroy abbestellen.

%Vor%

Dies wird der vorherige Param-Wert

klar sein

über Logik funktioniert für mich. hoffe, es wird dir helfen.

%Vor%     
Varadha Raj 21.11.2017 19:18
quelle