路由在url中添加未定义的param?

时间:2018-01-11 13:19:14

标签: angular

我有两条道路:

{ path: "evidencija/:type/:specId/:activeIndex", component: VpnEvidencijaFlowComponent },
  { path: "evidencija/:type/:offerId/:specId/:activeIndex", component: VpnEvidencijaFlowComponent },

在ts中我有这个:

 this.router.navigate(['/evidencija', this.type, children.key, 0], {queryParams: this.queries});

问题是我得到了所有这些参数但它在应该是offerId的地方设置了undefined但在某些情况下我没有。任何建议为什么我在url中得到未定义?

1 个答案:

答案 0 :(得分:0)

问题在于您的路线,您不必在路径中定义参数。

他必须将名称与路线(以及页面)相关联

如果您想在路线中使用传递参数,则需要使用如下导航:

 this.router.navigate(['/evidencija', this.type, children.key, 0]);

你的路径只是:

 { path: 'evidencija', component: VpnEvidencijaFlowComponent},

并在其他组件导入中读取您的参数:

import { ActivatedRoute } from '@angular/router';

在contructor中声明它:

private route: ActivatedRoute

在NgInit中获取你的参数:

  ngOnInit() {
    this.sub = this.route.params.subscribe(params => {
       this.id = params['id'];
    });
  }