Внедрение отдельной конфигурации для общего сервиса 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 }
  ]
})

...но оба экземпляра службы получают одну и ту же конфигурацию.

Как указать разные конфигурации для разных экземпляров службы?

0 ответов

Другие вопросы по тегам