离子/角离开页面事件

时间:2018-12-12 01:08:10

标签: angular ionic-framework ionic4

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

在导航到当前页面之前捕获事件的最佳方法是什么?

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

还是应该只对所有更改更新我的配置服务,而不必担心离开页面?

2 个答案:

答案 0 :(得分:0)

您可以使用ngOnDestroy生命周期挂钩,当用户离开View时,该挂钩将被触发,即组件将被破坏。

**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将被触发。

答案 1 :(得分:0)

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