Ionic / Angular 离开页面事件

Ionic / Angular Leave Page Event

我有一个 Ionic v4 页面,它为我的应用程序配置了许多参数,我想在离开页面之前将所有这些值填充到注入的服务中,以便它们可以在应用程序的其他地方使用。我正在使用 Ionic Tabs 控件/页面进行导航。

在离开当前页面之前捕获事件的最佳方法是什么?

我玩过 @angular/router NavigationStart 事件,但是一旦连接它就会在所有页面转换时触发,我无法确定何时离开所需的配置页面。还是我应该使用旧的 Ionic v3 NavControl?

或者我应该只根据所有更改更新我的配置服务而不用担心离开页面?

您可以使用 ngOnDestroy 生命周期挂钩,它会在用户离开视图时触发,即组件将被销毁。

**Service:**

clearData(){
  //write logic to clear data
}

**Component:**

@Component({..})
export class MyComponent implements onDestroy{

ngOnDestroy(){
  this.service.clearData();
} 

对于 Ionic 4,默认情况下当我们导航到另一个视图时不会触发 ngOnDestroy。您可以使用 ionViewWillLeave/ionViewDidLeave 来处理可观察到的退订。

通过使用this.nav.navigateRoot(['/dashboard']);组件将被销毁并触发ngOnDestroy。

如果可以,我会删除我原来的问题,但我不能。这些问题都与 Beta 16 有关,现在我已升级到 RC0,问题已解决。看起来我所做的一切都是正确的,但显然存在与导航相关的错误。