Я пытался создавать экземпляры служб, передавая такие параметры, как @Inject('controller')
. И я связываю свои услуги с NgModule
. Как показано ниже -
providers: [
IBillService,
{ provide: 'controller', useValue: 'xyz' }
]
, но возникает проблема Ожидается присвоение свойства , когда я пытаюсь связать несколько служб с одинаковым именем @Inject name controller
, но разными значениями. Я попробовал ниже -
providers: [
{ provide: IBillService, { provide: 'controller', useValue: 'xyz' } },
{ provide: RService, { provide: 'controller', useValue: 'gmr' } },
]
Поскольку значение @Inject
привязано к конкретной службе, то имеет смысл связать их с этой конкретной provider
.
Моими службами:
@Injectable()
export class IBillService extends CommonService {
constructor(
httpClient: HttpClient,
@Inject('controller') controller: IBController) {
super(controller, httpClient);
}
}
export class RService extends IBillService {
constructor(
httpClient: HttpClient,
@Inject('controller') controller: IBController) {
super(httpClient, controller);
}
}
Здесь CommonService
- это базовый класс, а IBController
- это Enum. Вопрос в том, могу ли я предоставить примитивные значения разных классов с одинаковыми именами. Или мне просто нужно изменить название этих примитивных значений ;