开发者问题收集

在服务中使用 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