Как получить идентификатор из URL для компонента Angular Resolver - PullRequest
1 голос
/ 18 июня 2019

Я использую компонент распознавателя, но не могу получить идентификатор из URL.

Stackblitz - https://stackblitz.com/edit/angular-x4djgz

В стеке, если я перейду к supplier/3:

Я получаю params.get('id') null от преобразователя и params.get('id') 3 от конечного компонента. Как получить идентификатор конечной точки внутри распознавателя.

route.paramMap.subscribe(
    (params: ParamMap) => {
      console.log("params.get('id')", params.get('id'));
    }
);

Этот вопрос был сильно отредактирован, так как изначально я думал, что это как-то связано с тем, чтобы быть угловым + электронным приложением.

Ответы [ 3 ]

2 голосов
/ 18 июня 2019

Согласно Angular doc , как вы можете видеть в примере в guide , метод resolve принимает два параметра, которые относятся к фактическому маршруту, который вы пытаетесь выполнить. решить.

Использование этого в распознавателе устраняет проблему:

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot){
    console.log("params.get('id')", route.paramMap.get('id'));
    return of('dummy').pipe(delay(50));
  }

https://stackblitz.com/edit/angular-4fkspm

1 голос
/ 18 июня 2019

Вы можете получить идентификатор в распознавателе с помощью фрагмента ниже,

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot)
: Observable<any> | Promise<any> | any {
    let id = route.params['id'];
    return this.service.get(id);
}
0 голосов
/ 18 июня 2019

Попробуйте,

 constructor(private route: ActivatedRoute) {
    route.params.subscribe(
     (params) => {
       console.log("params.get('id')", params['id']);
     });
  }
...