2016-08-18 32 views
2

我們最近將我們的angular2應用從2.0.0-beta.15升級到2.0.0-rc.5(包括遷移到新路由器3.0.0-rc.1)。通過左側的菜單和頁面頂部的子菜單,我們的應用程序同時有兩個<router-outlet>重新使用新角路由器(3.0.0-rc.1)

在更新後追逐一些不同的行爲,我注意到現在(更新後)我們應用程序中的任何組件被破壞並構建,即使組件位於<router-outlet>之外。舊路由器的情況並非如此。這就像新的路由器不能重用已經存在的組件。

我把角的CrisisCenter分叉爲plunker,並向每個組件構造函數添加了一些簡單的調試控制檯輸出,以驗證這是由於新版本而不是配置。行爲是一樣的:count永遠不會增加,因爲組件不會被重用。有沒有人有一個想法如何重用組件的實例?

另外,有人可以解釋爲什麼新的路由器不想重用組件?我已經從@angular/router-deprecated遇到CanReuse,但這個功能還沒有到達新的路由器。但即使CanReuse用於新路由器,默認情況下重用組件,而不是對所有「靜態」組件實施CanReuse更合理嗎?還是不應該重新使用組件?

+0

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

+0

感謝尼古拉,但這似乎是關於別的。 –

回答

2

聽起來像是你遇到了這個問題https://github.com/angular/angular/issues/10702已經修復並將包含在下一次更新中。

+0

非常感謝,Günter,我們將再次檢查rc.6 –

+2

只是爲了記錄:RC6確實解決了問題。再次感謝。 –