这适用(路线参数= :id
)
{
path: 'qp/:id?repo=1',
component: QueryParamsComponent
}
<li><a [routerLink]="['/qp', 5]" [queryParams]="{repo:1}">Query Params</a></li>
但没有Route Params,它无法正常工作,
有没有办法让下面的代码工作?
{
path: 'qp?repo=1',
component: QueryParamsComponent
}
<li><a [routerLink]="['/qp']" [queryParams]="{repo:1}">Query Params</a></li>
还是以其他方式实现这一目标?
这是我的QueryParamsComponent
repo = ' ';
ngOnInit() {
this.router.params.subscribe((params: Params) => {
this.repo = params['repo'];
});
}
Angular Version:4.2.4
答案 0 :(得分:1)
您可以使用或不使用参数调用相同的组件来定义多个路由,并且您不需要将queryParams放在路由配置中:
{
path: 'qp/:id,
component: QueryParamsComponent
},
{
path: 'qp',
component: QueryParamsComponent
}
并在您的组件内:
this.router.queryParams.subscribe(params => {
this.repo= +params['repos'];
})