2016-09-23 50 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