我獲得了EXCEPTION: No provider for Http!
在個人Angular應用程序中。 我究竟作錯了什麼? html
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' }) });
由於它只是在評論部分我重複Eric的回答: json
我必須包含HTTP_PROVIDERS
bootstrap
導入HttpModule 數組
import { HttpModule } from '@angular/http'; @NgModule({ imports: [ BrowserModule, HttpModule ], providers: [], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export default class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
理想狀況下,您將此代碼拆分爲兩個單獨的文件。 欲瞭解更多信息,請閱 angular2
從rc.5起,你必須作相似的事情 app
@NgModule({ imports: [ BrowserModule], providers: [ HTTP_PROVIDERS ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export default class AppModule { } platformBrowserDynamic().bootstrapModule(AppModule);
> = Angular 4.3 ide
對於引入的HttpClientModule
post
import { HttpClientModule } from '@angular/common/http'; @NgModule({ imports: [ BrowserModule, FormsModule, // if used HttpClientModule, JsonpModule // if used ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }
Angular2> = RC.5 ui
將HttpModule
導入到您使用它的模塊(例如AppModule
: this
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
很是類似。
從RC5開始,您須要像這樣導入HttpModule:
import { HttpModule } from '@angular/http';
而後在Günter上面提到的進口數組中包含HttpModule。