销毁Angle中的组件实例的最佳方法是什么?

时间:2018-10-04 09:18:01

标签: angular

我有一个Angular应用程序,它有一个在两个组件之间切换的按钮。 当我稍微玩一下按钮时发现一个问题,有时某个组件从另一个组件继承了某些行为,因此我正在寻找一种方法,每次切换时都启动一个干净的实例。 我试图在ngOnDestroy()中进行一些退订,但这无济于事!

1 个答案:

答案 0 :(得分:0)

免责声明:我不喜欢编写用于手动创建和销毁组件的代码。相反,应该依靠框架的路由,子级父级和*ngIf来创建和销毁组件。当然,您应该在创建和销毁期间使用ngOnInitngOnDestroy处理代码。

但是,我假设您使用ComponentFactoryResolver.resolveComponentFactory来手动初始化和销毁​​组件。

在这种情况下,您可以使用:

viewContainerRef.clear();

其中viewContainerRef是您的组件占位符。这样可以确保在加载新实例时,viewContainerRef中不会保留来自先前组件的信息。