如何 运行 构造函数或 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']);
}
}
);
}
或者,您可以使用 在组件之间共享信息。
我的情况是这样的: 我有一个应用程序,其中有多个屏幕,其中一个有文章列表,当单击一个项目时,它会将我带到另一个屏幕,其中显示该项目的详细信息,这是路线代码:
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']);
}
}
);
}
或者,您可以使用