Angular 2 - 从 url 中提取多个变量

Angular 2 - Extract multiple variables from url

我想从 url 中提取多个参数。假设 url 就像

www.example.com/parent-component/2/list/child-component/5/list

我想提取参数25

父组件上的link是

[routerLink]="['/loggedIn','warehouse','move-request',moveRequest.id, 'issued-inventory',issuedInventory.id,'list']"

我在各自的路由文件中这样做

{path:':move/issued-inventory',component:IssueInventoryComponent, children : ISSUED_INVENTORY_ROUTES}

子路由文件为

{path:':myid/list',component:ListIssueInventoryComponent},

在下面的组件中,我想访问变量 movemyid

this.sub = this.activatedRoute.params.subscribe((params : Params) =>
        {
           this.moveRequestId = params['move'];

        });

在控制台上 moveRequestId 未定义 我究竟做错了什么?如何访问这些变量?

Router Version :     "@angular/router": "^3.3.1"

您应该首先检索父路由以提取父路由参数。但在此之前,您需要 router 实例来获取当前路由父 ActivatedRoute.

constructor(private activatedRoute: ActivatedRoute, private router: Router){

}

this.sub = this.activatedRoute.params.subscribe((params : Params) => {
    //retrieve parent activated route
    const parentRoute = this.router.routerState.parent(activatedRoute);
    this.moveRequestId = params.params['move'];
});

相反,您可以只引用当前激活的路由 snapshot 属性,它已经引用了父路由。

let move = this.activatedRoute.parent.params['move'];