Angular / Ionic 4:从另一页面返回时触发更改检测

时间:2019-05-21 11:07:17

标签: angular ionic-framework

我是Angular和Ionic 4的新手,正在构建一个Ionic应用程序。我有以下情况:

页面内有2个组件。我在组件A中,向前导航到组件B,然后打开一个Modal并更新数据库(SQLite)。

我需要使用数据库中保存的新值来更新组件A的模板。但是,当我单击组件B上的后退按钮(返回到A)时,我无法读取数据库,因为似乎此事件不会触发组件A上的任何事件。

我试图在onDoCheck中读取数据库,但是它进入了循环。

我试图让组件B在单例上写一个值,然后让组件A在onDoCheck中对其进行检查,但是它也不起作用。

我试图在确认模态中调用ApplicationRef.tick()。但这并没有触发A上的任何内容。

我找不到从组件B到组件A捕获“后退事件”的方法。如果找到了,我将尝试在该事件上调用ApplicationRef.tick()...

它猜测这是非常基本的东西,并且我可能缺少一些重要的Angular概念。 有人可以在这里给我一些光线吗?

2 个答案:

答案 0 :(得分:0)

您要做的是,使用组件A的AfterViewInit实现非常容易地实现父子组件之间的通信:

export class A implements OnInit, AfterViewInit{
@Input() SharedValue = {}
ngAfterViewInit(): void {
        if (this.B) {
            this.SharedValue= this.B['sharedValue'];
        }
    }
}

答案 1 :(得分:0)

离子型生命周期事件将满足您的要求,例如ionViewDidLoad()ionViewWillEnter()ionViewWillLeave()ionViewDidLeave()ionViewWillUnload(