首页 文章

如何在不同的URL上重用相同的组件实例

提问于
浏览
2

Context

我想创建一个 Map 组件,我想在各种URL上重用它 . 实例化此组件有点耗时,并且每次创建组件时也会使用切片请求来显示 Map 图像 .

Question

当组件嵌套在树中时,如何在不同的URL上重用相同的组件实例?

在下面的stackblitz上,每次切换路由时都会实例化一个新的 ReusableComponent

https://stackblitz.com/edit/angular-sr9stk?file=app%2Freusable.component.ts

Note

我知道 RouteReuseStrategy ,但这仅适用于顶级组件(即路由设置中定义)

使用角度5.2

1 回答

  • 2

    有点像黑客,但这是我让它工作的唯一方式

    https://stackblitz.com/edit/angular-13dj9k

    在服务中创建Component作为ComponentRef,然后将其插入到指令的ViewContatiner中,该指令存在于每个路由上 . hacky部分是我必须在导航之前监听NavigationStart事件以分离组件,以便可以在下一个路由上重新连接 .

相关问题