Angular2不止一次调用ngOnInit(和其他所有生命周期钩子方法)

时间:2017-10-30 12:57:18

标签: javascript angular typescript

我遇到Google Chrome (newest)下的奇怪情况 - 我导航到我的ng2驱动的网络应用程序中的列表,将浏览器折叠到任务栏,5分钟后(或左右) ,控制台显示第一次启动组件时显示的消息,所以:

public ngOnInit(): void {
    console.log("INIT CALLED");
}

所以看起来Chrome正在查杀我的应用程序,然后它会被复活并显示此INIT CALLED消息。让我失望的是ngOnDestroy挂钩在ngOnInit第二次被调用之前没有被调用。对我来说看起来像ng2中的一个错误,但是有没有人经历过这个并且可以和我分享修复?

1 个答案:

答案 0 :(得分:0)

当浏览器选项卡关闭或暂停时,不会调用

ngOnDestroy 仅当Angular删除组件时才会调用ngOnDestroy

当标签关闭时,Angular没有机会做任何事情。 有关如何在浏览器选项卡关闭时调用代码,请参阅How can we detect when user closes browser?