如何使用一项服务而不是另一项服务 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
.
的实例
我有一个客户端应用程序 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
.