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,问题已解决。看起来我所做的一切都是正确的,但显然存在与导航相关的错误。
我有一个 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,问题已解决。看起来我所做的一切都是正确的,但显然存在与导航相关的错误。