Как предоставить инъекционный токен инъекционному сервису
У меня есть модуль с сервисом, которым я делюсь
@Injectable({providedIn: 'root'})
export class SharedService{
constructor(
private store: Store,
@Inject(API_REQUESTS) private apiRequests: ApiRequestInterface[]
) {
debugger;
}
Как видите, я хочу иметь возможность передавать список запросов API в эту службу, поэтому в моем общем модуле я настроил следующее:
export const API_REQUESTS = new InjectionToken<ApiRequestInterface[]>('ApiRequests');
@NgModule({
declarations: [],
providers: [],
imports: [
CommonModule,
NgxsModule.forFeature(
[
ApiState
]
)
]
})
export class ApiModule {
constructor(@Optional() @SkipSelf() parentModule: ApiModule ) {
}
static forRoot(apiRequests?: ApiRequestInterface[]): ModuleWithProviders<ApiModule> {
return {
ngModule: ApiModule,
providers: [
{provide: API_REQUESTS, useValue: apiRequests}
]
};
}
}
И в модуле реализации я определяю
providers: [
SharedService
],
imports: [
ApiModule.forRoot([])
]
но когда я использую SharedService в своих компонентах моего модуля реализации, я получаю:
NullInjectorError: No provider for InjectionToken ApiRequests
Что мне не хватает?