2016-11-30 1 views
0

Я пытаюсь ввести модуль http внутри моего приложения angular2, но я получаю ошибку.Не могу ввести http в angular2

Неожиданное значение 'Http' импортирован модулем 'AppModule'

Это то, что я пытаюсь.

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { Http } from '@angular/http'; 
import { AppComponent } from './app.component'; 

@NgModule({ 
    imports:  [ BrowserModule, FormsModule, Http], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

И это, как я пытаюсь использовать его

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

@Component({ 
    selector: 'my-app', 
    template: `<h1>Hello {{name}}</h1> 
     Maintenance Name: <input type="text" [(ngModel)]="htmlToPublish.title"/> 
     <textarea [(ngModel)]="htmlToPublish.html" rows="10" cols="50">Write here the HTML code that you want to publish 
     </textarea> 
     <button (click)="sendHtml()">Publish</button> 
     <p> 
     {{htmlToPublish}} 
     </p> 
`, 
}) 

export class AppComponent { 

    constructor(public http: Http){ 

    } 

    name = 'Angular'; 
    htmlToPublish: HtmlPage 

    public sendHtml() { 
    // Here I want to use http that I injected in constructor 

    } 

} 

ответ

3

Добавить HttpModule импорта, чтобы получить Http при условии

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; // <<< changed 
import { AppComponent } from './app.component'; 

@NgModule({ 
    imports:  [ BrowserModule, FormsModule, HttpModule], // <<< changed 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

но где вы инъекционные Http вам нужно

import { Http } from '@angular/http'; 
+0

Большое вам спасибо. Для меня немного сбивает с толку, что вы импортируете одну вещь в NgModule, а другую - в компонент. Я не знал, что это изменилось. – acostela

+1

'Http' - это самый распространенный используемый класс, но он состоит из кучки классов. Раньше это был «HTTP_PROVIDERS», а не «HttpModule». –