如何运行构造函数或 ngOnInit 两次或更多次
Posted
技术标签:
【中文标题】如何运行构造函数或 ngOnInit 两次或更多次【英文标题】:How to run the Constructor or ngOnInit twice or more 【发布时间】:2021-04-10 08:07:37 【问题描述】:我的情况如下: 我有一个应用程序,其中有几个屏幕,其中一个屏幕上有一个文章列表,当单击一个项目时,它会将我带到另一个屏幕,其中显示该项目的详细信息,这是路线代码:
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。
【问题讨论】:
【参考方案1】:试试这个解决方案来访问路由中的参数。
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']);
);
或者,您可以使用service 在组件之间共享信息。
【讨论】:
这对我有用,使用:``` this. activateRoute.queryParams.subscribe ((res) => ``` 坦克!以上是关于如何运行构造函数或 ngOnInit 两次或更多次的主要内容,如果未能解决你的问题,请参考以下文章