如何 运行 构造函数或 ngOnInit 两次或更多次

How to run the Constructor or ngOnInit twice or more

我的情况是这样的: 我有一个应用程序,其中有多个屏幕,其中一个有文章列表,当单击一个项目时,它会将我带到另一个屏幕,其中显示该项目的详细信息,这是路线代码:

this.navCtrl.navigateForward('/main/item-detalle', { animated: true, queryParams: {item} });

在详细信息屏幕中,我有一个删除项目的按钮,删除项目后,用户将被重定向回项目列表屏幕:

this._route.navigate(['/main/home/items'], { replaceUrl: true, queryParams: { itemId: id } });

在这段代码中,我通过参数向您发送已删除项目的 ID,以便能够将其从项目页面中删除。

但是我无法读取我通过 URL 中的参数发送的内容,因为构造函数和 ngOnInit 没有重新运行,因为项目页面没有被销毁。

我们的想法是不要使用“replaceUrl: true”破坏项目页面。

该应用程序将 Ionic 与 angular 结合使用。

试试这个解决方案来访问路由中的参数。

import { ActivatedRoute, Params, Router } from '@angular/router';

constructor(private activatedRoute: ActivatedRoute) {}
this.activatedRoute.parent.params.subscribe(
      (params: Params) => {
        if(params['itemId']) {
         console.log(params['itemId']);
        }
      }
    );
}

或者,您可以使用 在组件之间共享信息。