Ich bekomme das EXCEPTION: No provider for Http!
in meiner Angular App. Was mache ich falsch?
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'
})
});
HTTP_PROVIDERS
.HttpModule
müssen und was es tut.Antworten:
Importieren Sie das HttpModule
Idealerweise teilen Sie diesen Code in zwei separate Dateien auf. Weitere Informationen finden Sie unter:
quelle
app.ts
.main.ts
.> = Winkel 4.3
für die eingeführten
HttpClientModule
Winkel2> = RC.5
Importieren Sie
HttpModule
in das Modul, in dem Sie es verwenden (hier zum BeispielAppModule
:Das Importieren von
HttpModule
ist dem HinzufügenHTTP_PROVIDERS
in der vorherigen Version ziemlich ähnlich .quelle
Mit der Angular 2.0.0-Version vom 14. September 2016 verwenden Sie weiterhin HttpModule. Ihr Haupt
app.module.ts
würde ungefähr so aussehen:Dann können
app.ts
Sie in Ihrem Bootstrap als solches:quelle
Fügen Sie HttpModule zum Importieren des Arrays in der Datei app.module.ts hinzu , bevor Sie es verwenden.
quelle
Seit rc.5 muss man so etwas machen
quelle
weil es nur im Kommentarbereich war, wiederhole ich die Antwort von Eric:
Ich musste einschließen
HTTP_PROVIDERS
quelle
Importieren Sie
HttpModule
in Ihre Datei app.module.ts.Denken Sie auch daran, HttpModule unter den folgenden Importen zu deklarieren:
quelle
Der beste Weg ist, den Dekorator Ihrer Komponente zu ändern, indem Sie Http wie unten im Provider-Array hinzufügen.
quelle
Http
für jede Komponente ein neues Objekt möchten . Es ist besser, eine einzige für die App zu haben, was durch Importieren auf derNgModule
Ebene erreicht wird.Ab RC5 müssen Sie das HttpModule wie folgt importieren:
Nehmen Sie dann das HttpModule in das Import-Array auf, wie oben von Günter erwähnt.
quelle
Fügen Sie einfach die folgenden Bibliotheken hinzu:
und fügen Sie die http-Klasse
providers
wie folgt in den Abschnitt ein:quelle
Wenn Sie diesen Fehler in Ihren Tests haben, sollten Sie einen gefälschten Dienst für alle Dienste erstellen:
Zum Beispiel:
Und vor jedem:
quelle
** **.
quelle
Alles, was Sie tun müssen, ist, die folgenden Bibliotheken in tour app.module.ts aufzunehmen und sie auch in Ihre Importe aufzunehmen:
quelle
Ich habe dieses Problem in meinem Code festgestellt. Ich habe diesen Code nur in meine app.module.ts eingefügt.
quelle
import { HttpModule } from '@angular/http';
Paket in Ihrer module.ts-Datei und fügen Sie es in Ihren Importen hinzu.quelle
Ich füge einfach beide in meine app.module.ts ein:
&
Jetzt funktioniert es gut .... Und vergessen Sie nicht, das hinzuzufügen
@NgModule => Imports:[] array
quelle