Angular 使用全球服务而不是体面服务

Angular Use Global Service instead of decencies service

如何在应用程序和依赖项之间共享服务?

这里有一些伪代码,但应该能说明问题。

module A imports service C (package says it is a dependency so it install it)

app Module B imports service C (to configure it)

我有如下临时修复程序,但不喜欢它,因为多个依赖项可能会实现服务 c。

import {CService as OldCService} from 'c/node_modules/c';
import {CService} from 'c';

@NgModule({
  declarations: [ ... ],
  imports: [ ... ], 
  providers: [
     {provide: OldCService, useClass: CService}
  ],
  bootstrap: [AppComponent]
})
export class AppModule {
}

我能看到的唯一其他选项是使服务 C 成为可选的(成为对等依赖项)...但是我们在使用 forroot 设置时遇到了可选问题,它将在外部进行配置。

我相信这个观点描述了我当时想要的: https://www.youtube.com/watch?v=SBSnsNHQYo4