Обнаружен неопределенный поставщик! когда несколько сервисных вызовов друг друга - PullRequest
0 голосов
/ 23 апреля 2019

Я делаю сложные вызовы.

У меня есть модуль с именем NavigationModule со следующими провайдерами

  providers: [
    {provide: SYNCH_MAP_TOKEN, useFactory: SynchMapFactory },
    {provide: SYNCH_WAYPOINT_TOKEN, useFactory: SynchWaypointFactory },
    NavigationWaypointSyncherService,
    NavigationMapSyncherService
]

Папка токена и фабрики записана в другом файле.все работает нормально, пока я не добавлю эти две другие службы

NavigationWaypointSyncherService,
NavigationMapSyncherService

В компоненте я называю эти две службы

  constructor(private MapSyncherService: NavigationMapSyncherService,
              private WaypointSyncherService: NavigationWaypointSyncherService) { }

, но эти две службы вызывают ту, которая предоставляется с токеном

@Injectable({
  providedIn: NavigationModule
})
export class NavigationWaypointSyncherService {

  constructor(@Inject(SYNCH_WAYPOINT_TOKEN) private waypointSynchService: SynchronizatorService<SynchWaypointElement, SynchWaypointElementSubject>) {
    super(waypointSynchService);
  }

Это делает неожиданного поставщика Encountered!Круговая зависимость, потому что им нужен сервис в конструкторе.Я хочу, чтобы эти два сервиса были доступны только в этом модуле, но, добавляя их, я получаю эту ошибку и удаляю их:

StaticInjectorError (AppModule) [NavigationIndexComponent -> NavigationMapSyncherService]: StaticInjectorError (Platform: core) [NavigationIndexComponent -> NavigationMapSyncherService]: NullInjectorError: Нет поставщика для NavigationMapSyncherService!

.Я не совсем понимаю, как правильно поступить.

...