错误错误:StaticInjectorError(AppModule)[UserformService - > HttpClient]:

Bil*_*lly 35 angular angular4-httpclient

在尝试添加PrimeNG表时,我在这里打破了我的构建:https://github.com/BillyCharter87/Tech-O-Dex-UI/tree/BrokeIt

我记得将我package.json从TypeScript 2.3.4 更新到2.4.0并且由于(我认为)我正在使用HeadersHttp我的POST调用而破坏了它.我尝试将其设置回2.3.4无济于事.我已经修改了我可以添加的内容:

import { HttpClient, HttpHeaders } from "@angular/common/http";
Run Code Online (Sandbox Code Playgroud)

但仍然遇到我现在的错误HttpClient.我尝试HttpClient像这样导入提供程序:providers: [HttpClient]for app.module.ts.

完整错误如下:

AppComponent.html:9 ERROR Error: StaticInjectorError(AppModule)[HttpClient -> HttpHandler]: 
StaticInjectorError(Platform: core)[HttpClient -> HttpHandler]: 
NullInjectorError: No provider for HttpHandler!
Run Code Online (Sandbox Code Playgroud)

Kel*_*Lai 44

确保已导入HttpClientModule而不是将HttpClientdirecly 添加到提供程序列表中.

有关详细信息,请参阅https://angular.io/guide/http#setup.

HttpClientModule实际提供HttpClient给你.请参阅https://angular.io/api/common/http/HttpClientModule:


Rag*_*lan 28

将其导入app.module.ts

import {HttpClientModule} from '@angular/common/http';
Run Code Online (Sandbox Code Playgroud)

并在导入中添加此项

HttpClientModule
Run Code Online (Sandbox Code Playgroud)


Mir*_*ili 15

就我而言,需要:

@Injectable({
    providedIn: 'root'  // <- ADD THIS
})
export class FooService { ...
Run Code Online (Sandbox Code Playgroud)

不仅仅是:

@Injectable()
export class FooService { ...
Run Code Online (Sandbox Code Playgroud)


小智 13

简单地我已经导入 appmodule.ts

import { HttpClientModule } from '@angular/common/http';
  imports: [
     BrowserModule,
     FormsModule,
     HttpClientModule  <<<this 
  ],
Run Code Online (Sandbox Code Playgroud)

我的问题解决了


Abd*_*bar 7

import { HttpClientModule } from '@angular/common/http';
Run Code Online (Sandbox Code Playgroud)

app.module.ts文件中。那解决了我的问题。