【问题标题】:How to run the Constructor or ngOnInit twice or more如何运行构造函数或 ngOnInit 两次或更多次
【发布时间】: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。

【问题讨论】:

    标签: javascript angular ionic-framework angular-ui-router ionic-native


    【解决方案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) => {} ``` 坦克!
    猜你喜欢
    • 2012-02-21
    • 1970-01-01
    • 2022-07-07
    • 2017-11-03
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    相关资源
    最近更新 更多