2017-07-28 98 views
11

我试图访问一个JSON饲料,但来自the documentation我收到以下错误角4 - 找不到名称“的HttpClient”

“找不到名称‘的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; 
    }); 
    } 
} 

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 { } 

如何解决上述错误并注入的HttpClient到构造?

编辑:我的角版本4.3.2是

+0

哪个版本的角? –

+0

您应该将您的http资料转移到服务中,然后将服务而不是HttpClient注入您的组件。 – Akkusativobjekt

回答

44

HttpClient在角4.3.0版本得到了介绍。您还必须确保在主要AppModuleimports元数据中输入了&注入HttpClientModule

// 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'; 
+9

它没有说在文档中使用'@ angular/common/http';'import {HttpClient},但是这对我来说很有用,谢谢你! –

+4

这个部分说:“在你使用HttpClient之前,你需要安装提供它的HttpClientModule,这可以在你的应用程序模块中完成,并且只需要一次。”尤其是欺骗。 – Emanuel

+0

我需要重新启动应用程序ng服务-o – Charleston