2017-07-28 211 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