在Angular中,如果自定义库依赖于HTTP模块,而且在使用inject()
函数时出现错误,可以尝试以下解决方法:
HttpClientModule
,并将其添加到imports
数组中:import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [HttpClientModule],
// ...
})
export class YourCustomLibraryModule { }
inject()
函数的地方,将其从注入上下文中调用。例如,在服务或组件构造函数中使用@Inject()
装饰器注入HttpClient
:import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { inject } from '@angular/core/testing';
@Injectable()
export class YourService {
constructor(private http: HttpClient) { }
// ...
someMethod() {
// 使用http对象进行操作
}
}
Injector
,然后使用Injector
来获取HttpClient
实例:import { HttpClient } from '@angular/common/http';
import { Inject, Injectable, Injector } from '@angular/core';
@Injectable()
export class YourService {
private http: HttpClient;
constructor(@Inject(Injector) private injector: Injector) {
this.http = this.injector.get(HttpClient);
}
// ...
someMethod() {
// 使用http对象进行操作
}
}
这些解决方法应该可以帮助解决“Angular自定义库依赖于HTTP - inject()必须从注入上下文中调用”错误。