我有一个非常大的项目,在angular中,我正在将核心迁移到一个库中。问题来了,当我的服务(在库中)被导出。
public static forRoot(): ModuleWithProviders {
return {
ngModule: NbopflModule,
providers: [
...ALL_PIPES,
...ALL_SERVICES
]
};
}
而服务(所有的)都有。
@Injectable({
providedIn: 'root'
})
我在appModule中加载库(forRoot),然后在lacy加载模块中加载相同的库(有些像lacy加载的库,有些在项目中)
我在构造函数中添加了一个 console.log,并且在每个模块加载的时候都会出现这个消息,生成多个实例。我不想重构所有的代码,使所有的variabe statics。
Anyone Knows about any way to force a single instance of a service imported by a library?
非常感谢
我得到了解决方案:S:S
它只是删除了所有的provider声明(不在forRoot,不在模块provider......),只是用provideIn:'root',并在public-api文件中导出,工作:)