Context
我想创建一个 Map 组件,我想在各种URL上重用它 . 实例化此组件有点耗时,并且每次创建组件时也会使用切片请求来显示 Map 图像 .
Question
当组件嵌套在树中时,如何在不同的URL上重用相同的组件实例?
在下面的stackblitz上,每次切换路由时都会实例化一个新的 ReusableComponent
https://stackblitz.com/edit/angular-sr9stk?file=app%2Freusable.component.ts
Note
我知道 RouteReuseStrategy
,但这仅适用于顶级组件(即路由设置中定义)
使用角度5.2
1 回答
有点像黑客,但这是我让它工作的唯一方式
https://stackblitz.com/edit/angular-13dj9k
在服务中创建Component作为ComponentRef,然后将其插入到指令的ViewContatiner中,该指令存在于每个路由上 . hacky部分是我必须在导航之前监听NavigationStart事件以分离组件,以便可以在下一个路由上重新连接 .