首页 > 解决方案 > 离子/角度离开页面事件

问题描述

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

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

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

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

标签: angularionic-frameworkionic4

解决方案


您可以使用 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。


推荐阅读