Angular 4 - 找不到名字'HttpClient'

Jos*_*ury 16 angular

我正在尝试访问JSONFeed,但在从文档中进行更改后,我收到以下错误

"找不到名字'HttpClient'"

我已经查看了几次教程,但我很难找到为什么会出现这个错误.

我执行Http请求的组件.

rooms.parent.component.ts

import { Component, OnInit } from '@angular/core';

@Component({
 /.../
})

export class RoomParentComponent implements OnInit {
  results: string[];

  // Inject HttpClient into your component or service.
  constructor(private http: HttpClient) {}

  ngOnInit(): void {
    // Make the HTTP request:
    this.http.get(/.../).subscribe(data => {
      this.results = data;
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {HttpClientModule} from '@angular/common/http';
import { AppComponent } from './app.component';
import { RoomParentComponent } from './rooms.parent.component';

@NgModule({
  declarations: [
    AppComponent,
    RoomParentComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
  ],
  providers: [],
  bootstrap: [AppComponent]
})

export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

如何解决上述错误并将HttpClient注入构造函数?

编辑:我的Angular版本是4.3.2

Pan*_*kar 49

HttpClient在Angular 4.3.0版本中引入.另外你必须确保你已经导入和注入HttpClientModule你的主要AppModuleimports元数据.

// Import HttpClientModule from @angular/common/http in AppModule
import {HttpClientModule} from '@angular/common/http';


//in place where you wanted to use `HttpClient`
import { HttpClient } from '@angular/common/http';
Run Code Online (Sandbox Code Playgroud)

  • 它没有说'@ angular/common/http'中的`import {HttpClient};`文档中的`但是这对我有用谢谢! (10认同)
  • 部分说"在你可以使用HttpClient之前,你需要安装提供它的HttpClientModule.这可以在你的应用程序模块中完成,只需要一次." 特别是欺骗. (4认同)