Aucun fournisseur pour Http StaticInjectorError
Je suis en train d'extraire les données à partir de mon api, et de le remplir dans mon ionique application, mais il plante quand je rentre dans la page, les données doivent être remplis. Ci-dessous sont mes deux .les fichiers ts:
import { Component } from '@angular/core';
import { NavController, LoadingController } from 'ionic-angular';
import { RestService } from '../../providers/rest-service/rest-service';
@Component({
selector: 'page-all-patients',
templateUrl: 'all-patients.html',
providers: [RestService]
})
export class AllPatientsPage {
data: any;
loading: any;
constructor(public navCtrl: NavController, public restService: RestService, public loadingCtrl: LoadingController) {
this.loading = this.loadingCtrl.create({
content: `
<ion-spinner></ion-spinner>`
});
this.getdata();
}
getdata() {
this.loading.present();
this.restService.getJsonData().subscribe(
result => {
this.data=result.data.children;
console.log("Success: " + this.data);
},
err => {
console.error("Error : " + err);
},
() => {
this.loading.dismiss();
console.log('getData completed');
}
);
}
}
et l'autre fichier:
import { Http } from '@angular/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
/*
Generated class for the RestServiceProvider provider.
See https://angular.io/guide/dependency-injection for more info on providers
and Angular DI.
*/
@Injectable()
export class RestService {
constructor(public http: Http) {
console.log('Hello RestServiceProvider Provider');
}
getJsonData() {
//return Promise.resolve(this.data);
return this.http.get('url').map(res => res.json());
}
}
J'ai essayé d'utiliser le HttpModule ainsi, mais c'est une erreur fatale. L'erreur est que le montre:
Error: Uncaught (in promise): Error: StaticInjectorError[Http]:
StaticInjectorError[Http]:
NullInjectorError: No provider for Http!
Error: StaticInjectorError[Http]:
StaticInjectorError[Http]:
NullInjectorError: No provider for Http!
at _NullInjector.get (http://lndapp.wpi.edu:8100/build/vendor.js:1276:19)
Je ne suis pas sûr pourquoi il y est une erreur du fournisseur, comme c'est le fournisseur créé par ioniques cadre
source d'informationauteur Drew
Vous devez vous connecter pour publier un commentaire.
Afin d'utiliser le protocole Http dans votre application, vous devez ajouter le HttpModule pour votre application.le module.ts:
Mise à jour: Angulaire v6+
Pour les Applications converti à partir d'anciennes versions (Angulaire v2 - v5): HttpModule est maintenant obsolète et vous devez le remplacer avec HttpClientModule ou autre, vous obtiendrez l'erreur de trop.
app.module.ts
remplacerimport { HttpModule } from '@angular/http';
avec la nouvelle HttpClientModuleimport { HttpClientModule} from "@angular/common/http";
Remarque: assurez-vous ensuite de le mettre à jour les modulesimports[]
tableau par le retrait de l'ancienHttpModule
et le remplacer par le nouveauHttpClientModule
.import { Http } from '@angular/http';
avec la nouvelle HttpClientimport { HttpClient } from '@angular/common/http';
Mise à jour de la façon dont vous gérer votre réponse Http. Par exemple, Si vous disposez d'un code qui ressemble à ceci
http.get('people.json').subscribe((res:Response) => this.people = res.json());
L'exemple de code ci-dessus entraînera une erreur. Nous n'avons plus besoin d'analyser la réponse, parce qu'il vient déjà de retour JSON dans la config de l'objet.
Pour plus d'informations, veuillez consulter l' -
Angulaire HttpClientModule - La Documentation Officielle