让我们考虑组件结构:
appComponent > router-outlet (A, B, C) > a, b, c (根据选择一个),其中: A, B, C:动态加载a, b, c(动态组件加载器) a, b, c :动态加载的组件
本练习的目的是能够为不同的寄存器(假设用户)提供组件 a、b、c 的版本,因此我在每个表单 a、b、c 中输入的信息始终在每个用户的内存中可用。
我正在使用路由器插座显示一个 ViewContainerRef,它创建“子路由”组件的实例,这意味着,如果我想要路由a、b、c,那么我使用A、B、C 将它们加载到路由器插座中作为仅具有 ViewContainerRef 的组件,然后在每个组件中分别加载动态组件a、b、c(如果之前未创建,它们将存储在集中式服务中),在离开路由之前,我实现 canDeactivate 以分离ViewContainer 中的当前视图,因此a、b、c的组件实例永远不会被破坏,当我为某个用户返回该特定路线时,我可以将它们插入到加载器上。
这是一个正确的方法吗?或者我不应该将动态组件加载器与路由器插座混合在一起吗?
更新:如果我想在 a、b、c 中再多一个路由器插座,将我带到 c、d 怎么办?我遇到了问题,因为它似乎无法识别放置在 a、b、c 上的路由器插座,因此不显示动态组件加载器 C、D