我有一个Angular应用程序,它有一个在两个组件之间切换的按钮。
当我稍微玩一下按钮时发现一个问题,有时某个组件从另一个组件继承了某些行为,因此我正在寻找一种方法,每次切换时都启动一个干净的实例。
我试图在ngOnDestroy()
中进行一些退订,但这无济于事!
答案 0 :(得分:0)
免责声明:我不喜欢编写用于手动创建和销毁组件的代码。相反,应该依靠框架的路由,子级父级和*ngIf
来创建和销毁组件。当然,您应该在创建和销毁期间使用ngOnInit
和ngOnDestroy
处理代码。
但是,我假设您使用ComponentFactoryResolver.resolveComponentFactory
来手动初始化和销毁组件。
在这种情况下,您可以使用:
viewContainerRef.clear();
其中viewContainerRef
是您的组件占位符。这样可以确保在加载新实例时,viewContainerRef
中不会保留来自先前组件的信息。