我有一个类似这个dashboard/tour/2/269的路径,这个组件代表旅游细节,在这个组件中有一些链接引用类似的旅游,所以当一个用户单击其中一个链接时,我想要基于新的dashboard/tour/5/150重新加载组件,比如这个dashboard/tour/5/150,我尝试使用一个直接的[routerLink],但是它将新的参数附加到旧的一个上,使它变得像这个dashboard/tour/2/269/tour/5/150 --路由变得无效。
请给我任何建议。
发布于 2018-05-01 13:33:51
您必须将ActivatedRoute注入组件中。你的路线必须这样设置:
{ path: 'person/:id/:office_id', component: PersonComponent },然后订阅params:
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params
.subscribe(params => {
const id = +params['id'];
const office = +params['office_id'];
console.log(`Current params are person ID ${id} and office ID ${office}`);
});
}您的routerLink应该是:
[routerLink]="['/persons', 2, 5]"在这里,我在构造函数中将ActivatedRoute的一个实例注入为route。
您需要获得您在仪表板组件路由中列出的每个参数。在这个例子中,我的路由是简单的persons/:id,在这里我可以从http://localhost:3000/persons/1获得id。因此,如果我有一个路由器链接到下一个人,比如[routerLink]="['/persons', 2]",这个代码片段将更新并提供给我一个id of 2。
根据您当前的插图和问题,这听起来像是您正在寻找的解决方案。
StackBlitz解决方案
https://stackoverflow.com/questions/50116878
复制相似问题