Angular的LifeCycle Hook ngOnDestroy无法在手机上运行

时间:2018-12-26 15:17:24

标签: angular

我的Angular应用程序中有这段代码,可以在桌面上正常工作。但是,由于某种原因,它无法正常工作。

我正在iPhone的google chrome应用程序上对此进行测试。我似乎找不到任何有关chrome应用程序是否支持ngOnDestroy的文档。这是我的代码:

  ngOnDestroy() {
    this.chatService.leaveChat('User left');
  }

  @HostListener('window:beforeunload')
  doSomething() {
    this.ngOnDestroy();
  }

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

ngOnDestroy是生命周期挂钩,它并不意味着必须手动触发。它在组件被销毁时运行。它不需要使用浏览器进行任何操作。

您可能希望将ngOnDestroy中存在的所有内容包装到另一个函数中,并在ngOnDestroywindow.beforeunload上都调用该函数。

例如

  ngOnDestroy() {
    this.onDestroy()
  }

  @HostListener('window:beforeunload')
  onDestroy() {
    this.chatService.leaveChat('User left');
  }