Доступ к ParamMap - PullRequest
       19

Доступ к ParamMap

0 голосов
/ 25 марта 2020

Кажется, я не знаю, как получить доступ к параметру в моем маршруте, и я не могу понять, почему. У меня есть следующая структура маршрута:

const routes: Routes = [
  {
    path: 'login',
    component: LoginComponent
  },
  {
    path: 'foo',
    component: MainComponent,
    children: [
      // some sibling paths
      {
        path: 'odl/:id',
        component: OdlMainComponent,
        children: [
          {
            path: 'details',
            component: OdlDetailComponent
          },
          {
            path: 'phases',
            component: OdlPhasesComponent
          }
        ]
      }
    ]
  }
];
@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class ViewsRoutingModule {}

Теперь я нахожусь внутри своего OdlMainComponent, и похоже, что я не могу получить этот идентификатор в моем маршруте. Я безуспешно пробовал следующие решения:

constructor(
    private _route: ActivatedRoute
) { }

ngOnInit() {
    this._odlId = +this._route.snapshot.paramMap.get('id');
    // or
    this._odlId = +this._route.parent.snapshot.paramMap.get('id');
    // or
    this._odlId = +this._route.root.snapshot.paramMap.get('id');
}

Как я могу это сделать?

1 Ответ

1 голос
/ 25 марта 2020

Попробуйте сделать что-то вроде этого:

Взгляните на код:

_params: object;

constructor(
    private _route: ActivatedRoute
) { 
    this._route.params.subscribe(params => this._params = params);
    // console.log(this._params['id']);
}

ngOnInit() {
    this._odlId = + this._params['id'];
}

Надеюсь, вы найдете это полезным, вот как я это делаю. Может быть, у кого-то есть лучшее решение, чем это.

...