[angular] 각도 예외 : HTTP 공급자 없음

EXCEPTION: No provider for Http!Angular 앱을 받고 있습니다. 내가 뭘 잘못하고 있죠?

import {Http, Headers} from 'angular2/http';
import {Injectable} from 'angular2/core'


@Component({
    selector: 'greetings-ac-app2',
    providers: [],
    templateUrl: 'app/greetings-ac2.html',
    directives: [NgFor, NgModel, NgIf, FORM_DIRECTIVES],
    pipes: []
})
export class GreetingsAcApp2 {
    private str:any;

    constructor(http: Http) {

        this.str = {str:'test'};

        http.post('http://localhost:18937/account/registeruiduser/',
            JSON.stringify(this.str),
            {
                headers: new Headers({
                    'Content-Type': 'application/json'
                })
            });



답변

HttpModule 가져 오기

import { HttpModule } from '@angular/http';

@NgModule({
    imports: [ BrowserModule, HttpModule ],
    providers: [],
    declarations: [ AppComponent ],
    bootstrap: [ AppComponent ]
})
export default class AppModule { }

platformBrowserDynamic().bootstrapModule(AppModule);

이상적으로이 코드를 두 개의 별도 파일로 분할합니다. 자세한 내용은 다음을 읽으십시오.


답변

> = 각도 4.3

소개 HttpClientModule

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

@NgModule({
  imports: [
    BrowserModule,
    FormsModule, // if used
    HttpClientModule,
    JsonpModule // if used
  ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

각도 2> = RC.5

HttpModule사용하는 모듈로 가져 옵니다 (예 AppModule:

import { HttpModule } from '@angular/http';

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

를 가져 오는 것은 이전 버전 HttpModule을 추가하는 것과 매우 유사합니다 HTTP_PROVIDERS.


답변

2016 년 9 월 14 일 Angular 2.0.0 릴리스에서는 HttpModule을 계속 사용하고 있습니다. 당신의 메인 app.module.ts은 다음과 같이 보일 것입니다 :

import { HttpModule } from '@angular/http';

@NgModule({
   bootstrap: [ AppComponent ],
   declarations: [ AppComponent ],
   imports: [
      BrowserModule,
      HttpModule,
      // ...more modules...
   ],
   providers: [
      // ...providers...
   ]
})
export class AppModule {}

그런 다음 다음 app.ts과 같이 부트 스트랩을 만들 수 있습니다.

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/main/app.module';

platformBrowserDynamic().bootstrapModule(AppModule);


답변

HttpModule을 추가하여 사용하기 전에 app.module.ts 파일 에서 배열을 가져옵니다 .

import { HttpModule } from '@angular/http';

@NgModule({
  declarations: [
    AppComponent,
    CarsComponent
  ],
  imports: [
    BrowserModule,
	HttpModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }


답변

rc.5 부터는 다음과 같은 작업을 수행해야합니다.

@NgModule({
    imports: [ BrowserModule],
    providers: [ HTTP_PROVIDERS ],
    declarations: [ AppComponent ],
    bootstrap: [ AppComponent ]
})
export default class AppModule { }

platformBrowserDynamic().bootstrapModule(AppModule);


답변

코멘트 섹션에만 있었기 때문에 Eric의 대답을 반복합니다.

나는 포함해야했다 HTTP_PROVIDERS


답변

HttpModuleapp.module.ts 파일로 가져 옵니다.

import { HttpModule } from '@angular/http';
import { YourHttpTestService } from '../services/httpTestService';

또한 아래와 같이 가져 오기에서 HttpModule을 선언해야합니다.

imports: [
    BrowserModule,
    HttpModule
  ],