J'ai un service qui importe Http, et quand je l'utilise dans mon application, il génère une erreur. "Aucun fournisseur pour Http! Erreur à g injectionError". Je suis lazyloading l'application. De plus, le fournisseur a été généré via cli "ionic g provider ...
"
plainte-service.ts
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class ComplaintService {
private complaints: {subject: string, description: string}[] = [];
constructor(public http: Http) {
this.http = http;
this.complaints = null;
console.log('Hello ComplaintService Provider');
}
addComplaints(complaint: {subject: string, description: string}) {
this.complaints.Push(complaint);
}
getComplaints() {
return this.complaints.slice();
}
}
plainte-form.ts
import { Component } from '@angular/core';
import {Validators, FormBuilder, FormGroup } from '@angular/forms';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import {ComplaintService} from '../../providers/complaint-service';
@IonicPage()
@Component({
selector: 'page-complaint-form',
templateUrl: 'complaint-form.html',
providers: [ComplaintService]
})
export class ComplaintForm {
}
Aucune suggestion?
Vous devez enregistrer la HttpModule
dans votre module (/app.module.ts
):
import { HttpModule} from '@angular/http';
@NgModule({
imports: [
HttpModule
],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule {
}
Ajoutez également HTTP
à la liste des fournisseurs. (à AppModule
)
import { HTTP } from '@ionic-native/http';
Et
providers: [
...,
HTTP
]
Travailler avec Angulat5 +, Ionic 3+
HttpModule est obsolète dans les dernières versions de ionic3 et angular5. Donc, vous devez utiliser HttpClientModule au lieu de HttpModule. D'autres choses seront identiques à la réponse de @ devqon. Ensuite, vous pouvez utiliser HttpClient dans votre fichier de service ou de composant.
Pour plus d’informations, veuillez vous reporter au document original de Angular.
import {HttpClientModule} from "@angular/common/http";
@NgModule({
imports: [
HttpClientModule
],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule {
}
import {HttpClientModule} from "@angular/common/http";
@NgModule({
declarations: [
ChatPage,
],
imports: [
IonicPageModule.forChild(ChatPage),
HttpModule,
HttpClientModule,// add HttpClientModule to import
SocketIoModule.forRoot(config)
],
})
N'oubliez pas de courir avec ionic cordova run browser car vous avez besoin d'une plate-forme pour exécuter les plugins cordova