如何使用一项服务而不是另一项服务 Angular

How to use a service instead of another service Angular

我有一个客户端应用程序 angular,它扩展了另一个应用程序 angular(源代码在节点模块中)。 问题是我必须在服务调用 FccGlobalService 中更改一些变量值(该服务在 parent 项目中)。 在客户端应用程序中,我必须创建一个新服务 ClientFccGlobalService,在该服务中,我从 FccGlobalService 导入所有内容,并且更改了 3 个变量的值。 但是当我 运行 客户端应用程序 angular 时,应用程序不想使用 ClientFccGlobalService 但始终使用 FccGlobalService.

是否可以告诉我的客户端应用程序使用我的服务而不是 parent 的服务?

这是我的 clientAppComponent :

export class ClientAppComponent extends AppComponent implements OnInit {

    constructor(
        public translate: TranslateService, public router: Router, protected commonService: CommonService,
        protected fccGlobalConfiguration: FccGlobalConfiguration, protected checkTimeoutService: CheckTimeoutService,
        protected activatedRoute: ActivatedRoute, protected titleService: Title, protected customHeaderService: CustomHeaderService,
        public dateAdapter: DateAdapter<any>, protected resolverService: ResolverService, protected utilityService: UtilityService,
        protected formControlResolver: FormControlResolverService,
        @Inject(DOCUMENT) public document: any) {
      super(translate, router, commonService, fccGlobalConfiguration, checkTimeoutService,
                activatedRoute, titleService, customHeaderService, dateAdapter, resolverService, utilityService,formControlResolver, document);
    }
}

谢谢

您想要的是利用 Angular 依赖注入机制。您希望针对特定令牌 (FccGlobalService) 使用特定值 (ClientFccGlobalService)。您可以在 AppModule 中执行此操作,它是注入链中的最高模块,并在 providers 数组中提供该配置,如下所示。

@NgModule({
  providers: [
    ...,
    { provide: FccGlobalService, useClass: ClientFccGlobalService }
  ]
})
export class AppModule { }

基本上,当有人请求 FccGlobalService 的实例时,他们将得到的是 ClientFccGlobalService.

的实例