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
답변
HttpModule
app.module.ts 파일로 가져 옵니다.
import { HttpModule } from '@angular/http';
import { YourHttpTestService } from '../services/httpTestService';
또한 아래와 같이 가져 오기에서 HttpModule을 선언해야합니다.
imports: [
BrowserModule,
HttpModule
],