Angular 2 - 是否在刷新时调用ngOnDestroy,或者只是在远离组件时调用?

时间:2016-11-07 15:01:12

标签: angular

我想弄清楚Angular 2中的ngOnDestroy是在刷新时运行还是当有人离开页面时?

2 个答案:

答案 0 :(得分:25)

在刷新时或离开当前页面时,将不会调用ngOnDestroy。该应用程序将被浏览器销毁。

只有当Angular2从DOM中删除组件,因为您离开或在动态创建的组件上调用destroy()时,才会调用ngOnDestroy()

如果您需要在浏览器销毁应用程序之前采取某些措施,您可以自己聆听beforeunloadunload

另见

答案 1 :(得分:0)

你可以做一件事,它就像一个魅力。 创建一个测试保护并应用于您的组件。

使用BehavioralSubject创建服务。每当进入你的组件时,警卫会检查并在警卫中初始化你的主题,当它被初始化时,它将检查它是否在某处被订阅。在ngOnInit的组件中订阅此主题,然后调用destroy方法。