У меня есть небольшое веб-приложение, которое в основном перечисляет список игроков, и когда пользователь нажимает на имя игрока, он показывает информацию об игроке.Он использует два вызова API, один для списка и другой, чтобы загрузить информацию о выбранном игроке.Моя проблема заключается в том, что когда я возвращаюсь от подробного маршрута к домашнему маршруту, компонент снова выполняет ngOnInit, поэтому он снова делает первый вызов API, чтобы снова загрузить домашний список, и я больше не хочу этого вызова.Это моя конфигурация:
routing.module.ts
...
export const routes: Routes = [
{
path: '',
component: BioStatsComponent,
resolve: {
biostats: BiostatsResolverService
}
},
{
path: 'info',
children: [
{
path: ':id',
component: InfoComponent,
resolve: {
info: PlayersResolverService
}
}
]
}
];
...
detail.component.ts
ngOnInit(){
...
this.playersinfo = this.route.snapshot.data['info'];
...
}
home.component.ts
ngOnInit(){
...
this.biostats$ = this.route.snapshot.data['biostats'];
...
}
detail-resolver.service.ts
...
resolve(route: ActivatedRouteSnapshot, rstate: RouterStateSnapshot): Observable<any> {
const id = route.paramMap.get('id');
return this.playerService.getPlayerCommonInfo(+id).catch((err: any) => of([err]));
}
...
home-resolver.service.ts
constructor(private playerService: PlayersService) {}
resolve(route: ActivatedRouteSnapshot, rstate: RouterStateSnapshot): Observable<any> {
return this.playerService.getPlayerBioStats();
}