考虑一个包装 HTTP客户端模块的Angular服务。
export class HttpWrapperService {
private apiKey: string;
}
显然,它具有更多不相关的功能。
现在,我需要为多个模块提供 HttpWrapperService ,这些模块具有一些唯一的默认值。此默认值应分配给私有数据成员,即private apiKey: string;
正如我所看到的其他具有默认值的导入一样,我想知道如何实现它。
RouterModule.forRoot(AppRoutes),
GravatarModule.forRoot(GRAVATAR_CONFIG_TYPE1),
AngularFireModule.initializeApp(environment.firebaseConfig),
ServiceWorkerModule.register("ngsw-worker.js", {
enabled: environment.production
})
当前,我正在使用静态方法来初始化静态变量。不知道这是否是解决此问题的正确方法。
export class AppModule {
constructor(){
HttpWrapperService.register(environment.apiKeyHeaders);
UserService.registerEndpoint(environment.apiEndpoint);
}
}
答案 0 :(得分:1)
您可以按以下方式在AppModule中提供api键值:
@NgModule({
providers: [
{ provide: 'API_KEY', useValue: '<apiKeyValue>' },
HttpWrapperService
],
})
export class AppModule { }
可以如下注入api键值
export class HttpWrapperService {
constructor(@Inject('API_KEY') private apiKey: string) {}
}