Я реализую Resolver в Angular и не могу понять, как передать методу вызова API значение аргумента. Например, следующий метод разрешения getStores () работает нормально, он не имеет аргументов.
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<IStores[]> {
return this.storeService.getStores() <- this works, simply return all stores.
.pipe(
catchError(err => of(err))
);
}
Мне нужно передать storeId. 1. Пользователь нажимает на ссылку магазина, которую он выбирает в пользовательском интерфейсе 2. Код захватывает storeId и ... что дальше? как передать storeId этому распознавателю?
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<IStores[]> {
return this.storeService.getStoreDetails(storeId) <- how to pass "storeId" into here?
.pipe(
catchError(err => of(err))
);
}
Resolver запускается как таковой, а resolvedData заполняется данными, возвращаемыми из API в распознавателе.
let resolvedData: IStores[] = this.route.snapshot.data['resolvedStores'];
Маршрут / разрешение настраивается как таковой в app-routing.module.ts
const routes: Routes = [
{ path: "stores", component: StoresComponent, resolve: {resolvedStores: StoreService} }
];
Любой отзыв очень важен.