2017-04-12 10 views
1

Ich folge einem Tutorial in Portugiesisch, das lehrt, wie Sie Ihre erste Ionenanwendung erstellen.Fehler: Kein Provider für HTTP in Konstruktor Parameter mit Ionic

Nach der Installation von npm, node.js, eckig, Ionic und Cordova mit den letzten Versionen begann ich den Code zu schreiben. Der Code selbst ist es wirklich einfach:

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { Http } from '@angular/http'; 
import 'rxjs/add/operator/map'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 

export class HomePage { 

    public feeds: Array<string>; 
    private url: string = "https://www.reddit.com/new.json"; 

    constructor(public navCtrl: NavController, public http: Http) { 

    this.http.get(this.url).map(res => res.json()).subscribe(data => { 
     this.feeds = data.data.children; 
     }); 
    } 
}` 

Ich bin im Grunde die API Reddit raubend JSON, die in „url“ über den Link zugegriffen werden kann variabel und es soll eine große JSON zurück, verwandeln sie und speichern in "Einspeisungen". Das Problem ist, wenn ich diese ionische App diene ich diesen Fehler:

image of the error

Ich habe bereits versucht, dieses Problem herauszufinden und festgestellt, dass, wenn ich alles löschen, die innerhalb des Konstruktors ist immer noch ich den Fehler, aber wenn ich Erase "öffentliche http: Http" das ist ein Parameter für den Konstruktor der Fehler ist weg.

Auf der Suche nach Lösungen Ich sah jemand Vorschlag, Provider zu @Component hinzufügen, aber das Tutorial sagt nichts darüber.

Ich habe bereits versucht, alles neu zu installieren, aber ich bekomme immer noch den Fehler.

Was Sie tun müssen, um den Fehler zu erstellen:

  • npm bei neueste Version installieren;
  • Installieren Sie node.js in der neuesten stabilen Version.
  • Installieren Sie angular in der neuesten Version mit npm;
  • Installiere ionische (2.2.2) und cordova (6.5.0) neueste Version mit npm;
  • Eine App: ionic start MyReader blank --v2 --appname "Best Reader Ever" --id "com.tableless.myreader"
  • ändern MyReader/src/pages/home/home.ts Inhalt an das Skript oben.

Auch wenn Sie selbst einen Blick auf das Tutorial nehmen mögen, ist der Link: https://tableless.com.br/criando-uma-aplicacao-movel-com-ionic-2-e-angular-2-em-dez-passos/

+1

Importieren von 'HttpModule' in Ihr Hauptmodul wird dies beheben – Aravind

+0

Es tut mir wirklich leid zu fragen, aber ich fange gerade an, Angular und Ionic zu lernen, können Sie mir bitte sagen, wie kann ich es importieren? Vielen Dank! –

+0

sind Sie im Team Viewer verfügbar? – Aravind

Antwort

1

den Code unten verwenden

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

provider : [ HTTP_PROVIDERS, .... 


] 

Die obige Antwort seit angular4 aufgegeben. Jedoch Wie gesagt ich im Kommentar,

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

imports: [ HttpModule ] 
2

LÖSUNG: HTTP_PROVIDERS wurden aus angular2 entfernt und wurden ersetzt durch: Httpmodule.

Alles, was ich tun musste, war hinzufügen:

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

Um src/app/app.module.ts und dann:

imports: [ 
    BrowserModule, 
    HttpModule, 
    IonicModule.forRoot(MyApp) 
], 

Und fertig. Vielen Dank für alle.

+0

Wenn ich HttpModule injizieren, konnte ich HTTP-Methode wie get und post nicht richtig zugreifen? –

Verwandte Themen