Angular 2 - 从 url 中提取多个变量
Angular 2 - Extract multiple variables from url
我想从 url 中提取多个参数。假设 url 就像
www.example.com/parent-component/2/list/child-component/5/list
我想提取参数2
和5
父组件上的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},
在下面的组件中,我想访问变量 move
和 myid
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'];
我想从 url 中提取多个参数。假设 url 就像
www.example.com/parent-component/2/list/child-component/5/list
我想提取参数2
和5
父组件上的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},
在下面的组件中,我想访问变量 move
和 myid
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'];