在服务中使用 Angular 时 HttpClient 抛出错误
2019-06-07
331
我尝试在我的服务中使用 angular 6 中的
HttpClient
,如下所示:
auth.service.ts
constructor(private http: HttpClient, public dataService: DataService, private config: AppConfig) {
console.log(this.config);
}
这个
http:HttpClient
是我收到以下错误的原因。当我删除它时,错误就会出现。我不确定为什么会出现这个错误。
core.js:1521 ERROR TypeError: Cannot read property 'length' of null
at http.js:108
at Array.forEach (<anonymous>)
at HttpHeaders.lazyInit (http.js:102)
at HttpHeaders.init (http.js:166)
at HttpHeaders.forEach (http.js:235)
at Observable._subscribe (http.js:1445)
at Observable._trySubscribe (Observable.js:42)
at Observable.subscribe (Observable.js:28)
at subscribeTo.js:21
at subscribeToResult (subscribeToResult.js:6)
2个回答
在您的
app.module.ts
中:
在导入数组下导入
HttpClientModule,
:
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [ ..., HttpClientModule, ...] // import here
现在您可以在您的服务中注入 HttpClient:
import { HttpClient } from '@angular/common/http';
...............
constructor(private http: HttpClient, public dataService: DataService, private
config: AppConfig) {
console.log(this.config);
}
确保您的服务是
可注入的
并在“根”或 AppModule 提供程序中提供。
nircraft
2019-06-07
它实际上不是
HttpClient
。
您在构造函数中调用
console.log(this.config);
,但将配置作为参数传递给
constructor()
。
将参数传递给
constructor()
不会自动设置其名称相似的
this.
对应项。
您可能需要
console.dir(config);
或
this.config = config;
console.dir(this.config);
(此外,对对象使用
console.dir()
。)
msanford
2019-06-07