2016-09-23 47 views
8

Angular 2 final已經發布,我一直在玩最後的路由器版本。在Angular 2中有多個活動模塊

行動路由器的一個很好的例子可以在這裏找到:http://plnkr.co/edit/mXSjnUtN7CM6ZqtOicE2?p=preview

我想知道是否有保持在DOM渲染(但隱藏)當前模塊的任何機制,同時在頂部一個新的加載?這裏的用例是,也許用戶可能正在使用Admin類型的模塊,並意識到他們需要創建一些資源(可能是用戶),以便跳轉到用戶模塊來創建;然後跳回到他們在Admin模塊中的位置。

在這種情況下,用戶可能在Admin模塊的某些深層鏈接部分,這對他們來說會失去他們正在做的事情,這會是非常奇怪的行爲。

這可能嗎?從我迄今爲止所做的所有工作中,我已經看到<router-outlet>標記中顯示的模塊完全從DOM中拋棄。

謝謝!

回答

2

當路由改變時,當前路由器添加的組件被丟棄。 This is planned to be made configurable eventually

如果不斷在共享服務(即是丟棄)數據(模型),而不是組件本身,然後導航回到以前的路線,當用戶回來原來的看法。

服務需要在未被路由器移除的組件上提供。 @NgModule()中沒有延遲加載的根組件或提供程序可以工作。

+0

保持數據緩存在服務中僅僅是這種問題的一部分,儘管...如果用戶處於深度鏈接區域或具有一些複雜的配置,但實際上不能緩存在服務中。你是否有指向這個計劃可配置的文檔的鏈接?我想看到:) – Askanison4

+1

https://github.com/angular/angular/issues/7757#issuecomment-236737846 我無法想象爲什麼服務將無法持有對某些數據的引用一個組件將能夠。 –

+0

我在考慮更多沿着NgModules之間的切換,而不是僅僅在組件之間跳轉。我的想法是,我可以有一個模塊 - >組件 - >組件 - >組件場景,用戶必須輸入一些數據,然後跳轉到另一個模塊區域。感謝那個鏈接,雖然 – Askanison4