【问题标题】:Angular 2 Get Router Parameters From Past RoutesAngular 2从过去的路由中获取路由器参数
【发布时间】:2016-10-14 19:32:32
【问题描述】:

我在我的应用中设置了这样的 URL 结构:

app.com/project/:id/person/:id/task/:id

我的路由工作正常,我正在获取当前路由/组件的 ID:

this._params.snapshot.params 其中 _params = ActivatedRoute。

我的问题是:我如何在执行任务时获取项目 ID 或人员 ID。 (面包屑栏需要它。)

额外问题:我还尝试使用window.location.pathname 获取此信息,然后手动提取 ID。但是,我找不到在渲染组件/视图后触发的生命周期钩子。我在渲染模板之前或在移除组件之后(如导航离开)尝试触发的所有内容。这个有生命周期钩子吗?

谢谢。

【问题讨论】:

  • 查看ActivatedRouteSnapshot 文档。您可以使用它的属性parent/root/pathFromRoot/etc 来遍历路由树。某处应该有项目 id (;

标签: angular angular2-routing


【解决方案1】:

您可以通过在子路由订阅中使用 this._params.parent.params 来检索父路由参数,如下所示:

this._params
            .params
            .subscribe(params => {
                this._params.parent.params
                    .subscribe(paramsParent => {
                        // Get parent route param
                        this.id = paramsParent['id'];

                        // Get child route param
                        this.childId = params['id'];
                        this.task = params['task'];
                    });
            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-25
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 2017-02-11
    相关资源
    最近更新 更多