【发布时间】:2018-10-11 14:57:19
【问题描述】:
我正在尝试手动注入HttpClientModule,该HttpClientModule 从应用程序独立运行outside(可能是!)。在静态注入器之前,我使用反射注入器并且代码工作正常,但现在反射注入器已被弃用,我想用静态注入器更新我的代码。
//appInjector.ts
export class AppInjector {
private static _instance: AppInjector = new AppInjector();
private _injector;
constructor() {
console.log('app-injector');
AppInjector._instance = this;
this._injector = ReflectiveInjector.resolveAndCreate([
...[getAnnotations(HttpClientModule)[0].providers],
MY_HTTP_DEPENDENT_PROVIDERS
]);
static getInstance(): AppInjector {
return AppInjector._instance;
}
get(cls: any): any {
return this._injector.get(cls);
}
}
//someFile.ts
const translate = AppInjector.getInstance().get(TranslateResource);
请参考This Post
用于注释 fn。
现在,当我尝试将 Http 客户端与静态注入一起使用时,它会给出错误:
StaticInjectorError[HttpClent]: Function/class not supported
//app module
@NgModule({
imports: [],
declarations: [],
providers: [],
entryComponents: [App]
})
export class AppModule {
ngDoBootstrap(app) {
console.log('bootstrapping');
app.bootstrap(App);
}
所以如果我登录,它将记录app-injector,然后是bootstrapping。
【问题讨论】:
标签: javascript angular typescript angular-httpclient