导航到新网址

时间:2019-07-31 09:14:31

标签: angular

这是我的127.0.0.1:8000/app/admin页的一小部分: enter image description here 当我单击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

3 个答案:

答案 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 },