我正在打一些棘手的电话。
我的模块名为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);
}
这将导致遇到未定义的提供者!循环依赖,因为它们需要构造函数中的服务。我希望这两个服务仅在此模块中可用,但是通过添加它们,我出现了此错误,并删除了它们
StaticInjectorError(AppModule)[NavigationIndexComponent-> NavigationMapSyncherService]:StaticInjectorError(平台: 核心)[NavigationIndexComponent-> NavigationMapSyncherService]: NullInjectorError:没有NavigationMapSyncherService的提供程序!
。我不完全知道正确的方法是什么。