我有一个Ionic v4页面,该页面为我的应用程序配置了许多参数,我想在离开页面之前将所有这些值填充到注入的服务中,以便可以在应用程序中的其他地方使用它们。我正在使用Ionic Tabs控件/页面进行导航。
在导航到当前页面之前捕获事件的最佳方法是什么?
我玩过@angular/router
NavigationStart
事件,但是一旦连接起来,它就会在所有页面过渡上触发,并且我不知道何时离开所需的配置页面。还是应该使用旧的Ionic v3 NavControl?
还是应该只对所有更改更新我的配置服务,而不必担心离开页面?
答案 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,此问题已解决。看来我所做的一切都是正确的,但显然存在导航相关的错误。