1
votes

ERREUR Erreur: non intercepté (promis): NullInjectorError: R3InjectorError (RegisterPageModule) [AccessProviders -> AccessProviders]

J'ai un problème dans mon application Ionic avec AngularJS , dans register.page.ts ; quand je vais ajouter le chemin AccessProviders dans le projet, le projet dit: ERROR Error: Uncaught (in promise): NullInjectorError: R3InjectorError(RegisterPageModule)[AccessProviders -> AccessProviders -> AccessProviders -> AccessProviders]: NullInjectorError: No provider for AccessProviders!

J'ai créé le dossier et les fichiers des fournisseurs d'accès manuellement.

register.page.ts

import { HttpClient, HttpHeaders, HttpErrorResponse } from "@angular/common/http";
import  'rxjs/add/operator/map';
import  'rxjs/add/operator/timeout';

@Injectable()
export class AccessProviders {
    server: string = 'http://localhost:8100/register'; //should change.

    constructor(
        public http: HttpClient
    ) {

    }

    postData(body, file) {
        let headers = new HttpHeaders({
            'Content-Type': 'application/json; charset=UTF-8'
        });

        let options = {
            headers: headers
        };

        return this.http.post(this.server + file, JSON.stringify(body), options)
            .timeout(59000)// 59 sec timeout
            .map(res => res);
    }
}

access-provider.ts

import {Router} from "@angular/router";
import { ToastController, LoadingController, AlertController } from "@ionic/angular";
import {AccessProviders} from "../../providers/access-providers";

@Component({
  selector: 'app-register',
  templateUrl: './register.page.html',
  styleUrls: ['./register.page.scss'],
})
export class RegisterPage implements OnInit {

    name: string = "";
    gender: string = "";
    dob: string = "";
    email: string = "";
    password: string = "";
    confirm_password: string = "";
    disabledButton;

  constructor(
      private router: Router,
      private toastCtrl: ToastController,
      private alertCtrl: AlertController,
      private loadingCtrl: LoadingController,
      private accsPrvds: AccessProviders,
  ) { }

  ionViewDidEnter() {
      this.disabledButton = false;
  }

Comment puis-je résoudre ce problème? J'espère avoir ma réponse.


0 commentaires

3 Réponses :


0
votes

AJOUTEZ le code Blow dans votre fichier access-providers.ts :

import { Injectable } from '@angular/core'; // at top

@Injectable({
  providedIn: 'root' // just before your class
})
export class AccessProviders {}


0 commentaires

0
votes

Il semble que vous deviez l'ajouter sous fournisseurs dans votre fichier app.modules.ts.

Si vous n'avez besoin de la classe que dans une page, vous pouvez l'ajouter au fichier page.module.ts de la page correspondante.


0 commentaires

0
votes

Assurez-vous que HttpClientModule est inscrit au niveau d' AppModule


0 commentaires