在Angular 2中有多个活动模块

时间:2016-09-23 11:10:55

标签: angular typescript dom angular2-routing

Angular 2 final已经发布,我一直在玩最终的路由器发布。

路由器的一个很好的例子可以在这里找到:http://plnkr.co/edit/mXSjnUtN7CM6ZqtOicE2?p=preview

我想知道是否有任何机制可以保持当前模块在DOM(但隐藏)中呈现,同时加载一个新的顶部?这里的用例是,用户可能正在使用Admin-type模块并意识到他们需要创建一些资产(可能是用户),因此跳转到Users模块进行创建;然后跳回到他们在Admin模块中的位置。

在这种情况下,用户可能处于Admin模块的某个深层链接部分,这会让他们失去他们正在做的事情,这是非常奇怪的行为。

这可能吗?从我迄今为止完成的所有内容中,我已经看到<router-outlet>标记中显示的模块完全从DOM中删除。

谢谢!

1 个答案:

答案 0 :(得分:2)

当前路由更改时,路由器添加的组件将被丢弃。 This is planned to be made configurable eventually

如果您将数据(模型)保留在共享服务中(丢弃)而不是组件本身,则用户在导航回上一个路径时会返回原始视图。

需要在路由器无法删除的组件上提供服务。 @NgModule()中没有延迟加载的根组件可以正常工作。