Внедрение отдельной конфигурации для общего сервиса Angular.
У меня есть общий сервис данных, конфигурация которого введена, как показано ниже:
export default class GenericDataService<T> implements IGenericDataService<T> {
constructor(private readonly httpClient: HttpClient,
private readonly config: GenericDataServiceConfig
) { }
GenericDataServiceConfig
есть такие вещи, как baseUrl, конечная точка и т. д.
Эта служба данных внедряется в общий компонент поиска следующим образом:
export class GenericLookUpComponent<T> implements OnInit {
constructor(private readonly dataService: GenericDataService<T>) {}
...
}
Служба также внедряется в компонент, на которомGenericLookupComponent
размещен:
export class LookupDemoComponent implements OnInit {
constructor(private readonly nominalService: GenericDataService<Nominal>) { }
...
}
Итак, у меня есть два экземпляра GenericDataService, но оба нуждаются в разных конфигурациях: один в общем компоненте поиска, а другой в демонстрационном компоненте.
Я знаю, что могу внедрить конфигурацию в поставщиков компонентов следующим образом:
@Component({
selector: 'app-lookup-demo',
templateUrl: './lookup-demo.component.html',
providers: [
GenericDataService,
{ provide: GenericDataServiceConfig, useValue: nominalConfig }
]
})
...но оба экземпляра службы получают одну и ту же конфигурацию.
Как указать разные конфигурации для разных экземпляров службы?