Я сделал эти шаги:
1) создайте класс ReportResolver:
@Injectable()
export class ReportResolver implements Resolve<any>{
constructor(private reportService: ReportService){}
resolve(route: ActivatedRouteSnapshot, rstate: RouterStateSnapshot): Observable<any>{
return this.reportService.getReport(route.paramMap.get('pk'));
}
}
2) Добавить этот класс в список маршрутов:
const appRoutes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'report/:pk', component: ReportComponent, resolve: {reportData: ReportResolver} }
];
3) Вызов функции http в главном компоненте:
export class ReportComponent implements OnInit {
public report: Report;
constructor(private route: ActivatedRoute,
private reportService: ReportService) {
}
ngOnInit() {
this.route.data.map(data => data.reportData).subscribe(
(data: any) => {
this.report = new Report();
this.report.serialNum_used_probe = data.serialNum_used_probe;
this.report.created_datetime = data.created_datetime;
});
}
}
и это сработало для меня.