2017-04-14 64 views
1

我想從url中提取多個參數。假設URL就像Angular 2 - 從url中提取多個變量

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

我想提取的參數25

在父組件的聯繫是

[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" 
+0

ISSUED_INVENTORY_ROUTES是什麼樣子的? – DeborahK

回答

2

您應該首先檢索父路由以提取父路由參數。但在此之前,您需要使用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'];