У меня есть ApiService
, которым я не хочу делиться с компонентами.Он используется только внутри других сервисов.
NgModule
@NgModule({
providers: [
{ provide: 'APIUrl', useValue: window.angularConfig.APIUrl },
// ... declare secret imports like above
],
exports: [
FileService,
FolderService,
],
})
export class ServicesModule { }
Частный сервис
@Injectable({
providedIn: ServicesModule,
})
class ApiService {
@Inject('secret') secret!: string;
makeApiCall(url: string) { /* make HTTP call and send secret in header */}
}
Коммунальный сервис
@Injectable({
providedIn: ServicesModule,
})
class PublicService {
constructor(private api: ApiService ) {}
getNames(url: string) {
return this.api.makeApiCall('url/endpoint')
}
}
Это решение дает мнеошибка, подобная этой: WARNING in Circular dependency detected:
... \ services \ apis.service.ts -> ... \ services.module.ts -> ... \ public.service.ts -> ... \ apis.service.ts`