这是我的127.0.0.1:8000/app/admin
页的一小部分:
当我单击switch to update mode
按钮时,函数update()
被执行,并且显示足球比赛列表。当我从该列表中单击匹配项时,网页内容会更改,但URL保持不变:app/admin
。
要更改url参数,请添加我单击的匹配项的ID,如下所示:
update(id) {
this.router.navigate(['admin'], { queryParams: { id: id } });
// code ...
}
现在,当我从列表中单击一个匹配项时,该URL将更新为127.0.0.1:8000/app/admin?id=match_id
,但是当我尝试直接从浏览器访问该URL时,我将访问app/admin
内容,因此无法直接访问127.0.0.1:8000/app/admin?id=match_id
答案 0 :(得分:0)
尝试一下:
navigateToAdmin() {
this.roouter.navigate(['app/admin', {id: this.matchId}]);
}
答案 1 :(得分:0)
update(id) {
this.router.navigate(['/admin'], { queryParams: { id: id } });
}
答案 2 :(得分:0)
您是否尝试过订阅ngOnInit中的路由参数并对其进行检查?像下面一样
在demo.component.ts
中export class DemoComponent implements OnInit, OnDestroy {
matchId: string;
constructor(private route: ActivatedRoute, private router: Router) {
}
ngOnInit() {
this.route.params.subscribe( params => {
this.matchId = params.matchId;
});
/* Other stuff*/
//check this.matchId and process accordingly
}
ngAfterViewInit(){
//check this.matchId and process accordingly
}
}
并且在app-routing.module.ts
{ path : 'admin/:matchId', component: DemoComponent },