我有一项服务被设置为共享模块的一部分,例如
export class MyService {
construct() { }...
}
export class CoreModule {
constructor(@optional() @SkipSelf() core: CoreModule)
{
if (core)
{
throw new Error('Only one instances')
}
}
static forRoot() : ModuleWithProviders {
return{
ngModule: CoreModule,
providers: [MyService]
};
}
}
我想将此CoreModule(共享为单例)注入将使用myService的不同模块。
场景 - 组件A正在加载,例如组件B动态
我的一个组件是动态加载另一个组件视图,使用viewContainerRef.createComponent(componentFactory),它似乎创建了一个新的CoreModule实例,但我需要将它作为单例或服务作为单例,当它被注入到组件A中,但组件B似乎正在创建一个新实例,我已经在应用程序组件加载时设置了值。