2016-08-18 4 views
2

Wir haben kürzlich unsere angular2-Anwendung von 2.0.0-beta.15 auf 2.0.0-rc.5 aktualisiert (einschließlich der Migration auf den neuen Router 3.0.0-rc.1). Mit einem Menü auf der linken Seite und einem Untermenü oben auf der Seite hat unsere Anwendung zwei <router-outlet> zur gleichen Zeit.Wiederverwendung von Komponenten mit neuem Angular Router (3.0.0-rc.1)

Jagen ein anderes Verhalten nach dem Update, habe ich festgestellt, dass jede Komponente in unserer Anwendung jetzt (nach dem Update) zerstört und konstruiert wird, auch wenn die Komponente außerhalb der <router-outlet> ist. Dies war beim alten Router nicht der Fall. Es ist so, als könnte der neue Router die bereits vorhandene Komponente nicht wiederverwenden.

Ich verzweigte winkelig CrisisCenter in eine plunker und fügte einige einfache Debug-Konsole Ausgabe zu jedem Komponenten Konstruktor, um zu überprüfen, dass dies aufgrund der neuen Version und nicht zur Konfiguration ist. Das Verhalten ist das gleiche: count wird nie größer, da die Komponenten nie wieder verwendet werden. Hat jemand eine Idee, wie Instanzen einer Komponente wiederverwendet werden können?

Abgesehen, könnte jemand erklären, warum der neue Router Komponenten nicht wiederverwenden will? Ich bin schon auf CanReuse von @angular/router-deprecated gestoßen, aber diese Funktion ist noch nicht für den neuen Router angekommen. Aber selbst wenn CanReuse für den neuen Router da wäre, wäre es nicht sinnvoller, Komponenten standardmäßig zu verwenden, statt CanReuse für alle "statischen" Komponenten zu implementieren? Oder sollten Komponenten überhaupt nicht wiederverwendet werden?

+0

siehe http://stackoverflow.com/questions/38036498/angular2-router3-cant-reload-refresh-active-route –

+0

Danke Nikolay, aber dies scheint über etwas anderes zu sein. –

Antwort

2

Klingt, als würden Sie in dieses Problem https://github.com/angular/angular/issues/10702 läuft, die bereits behoben ist und in das nächste Update aufgenommen werden wird.

+0

Vielen Dank, Günter, wir werden es nochmal mit rc.6 überprüfen –

+2

Nur für die Aufzeichnungen: RC6 hat das Problem gelöst. Danke noch einmal. –

Verwandte Themen