2016-09-29 24 views
10

假設我們有兩條路線DashboardProfileDashboard具有動態標籤功能,如Google spreadsheet。我想在Dashboard中進行一些交互(構建圖表,可視化一些數據),創建制表符。現在,如果我路由到Profile,然後返回到Dashboard,我想查看以前在Dashboard中的這些選項卡中的內容。這意味着,我想維護客戶端的狀態。 AFAIK在組件之間進行路由時,它會重新創建組件。在使用角度2路由時是否可以製作電子表格?我需要使用路由,因爲在我的應用程序中我必須使用LazyLoading功能。想要在Angular 2中路由時避免組件娛樂

那麼應該是什麼想法?我是新角度2.

+0

我認爲這是可能從路由見。我讀過這個博客,但並沒有試圖實現你尋求的這種高級路由。 https://vsavkin.com/angular-2-router-d9e30599f9ea#.2o8b488po – DNRN

+0

我讀過博客,也讀過了vsavkin的新書。但對我來說理解這個概念太複雜了。這就是爲什麼我尋求更好更容易理解:/ –

回答

12

當前組件被重複使用只有當只有路線參數改變,而停留在相同的路線。

如果路由改變,當新路由添加相同的組件時,組件被重新創建。

首選的解決方法是將模型保留在共享服務中,該服務在路由更改期間保持活動狀態,並使用此服務中的數據恢復組件的以前狀態。

有人提到,有計劃支持路由器的自定義重用策略,但沒有時間線時,這將成爲可用。

更新定製重用策略

支持加入Angular2。

+0

但根據我的要求,我需要在'Dashboard'下創建多個選項卡(它可能甚至是100個選項卡,例如谷歌電子表格)。那麼我該怎麼做?你能否對'RouterState'發光? –

+0

我不認爲'RouterState'是相關的。您可能需要查看輔助路線,並且不要離開當前路線以顯示「配置文件」,而是將其顯示爲模式或類似模式。輔助路線的支持似乎還是有點受限(儘管他們還沒有嘗試過太多)。 –

+0

我提到了'Profile'作爲例子:/但我的應用程序就像在Google電子表格中一樣在選項卡中建立交互,並將這些選項卡存儲在'Dashboard'中。我需要LazyLoading。我的要求很複雜,我在初始架構方面存在問題:( –