在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()必须从注入上下文中调用”错误。