web-dev-qa-db-fra.com

Importateur de commentaires sur HttpModule angulaire dans la racine NgModule

Je commence par ionic v2, angular2 et TypeScript. J'essaie donc de configurer une page de connexion ionique qui récupère les informations de connexion et contacte l'API distante pour l'authentification. J'ai évidemment besoin d'un client HTTP angulaire.

Le src/app/app.component.ts ressemble à:

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar, Splashscreen } from 'ionic-native';


import { LoginPage } from '../pages/login/login';


@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  rootPage = LoginPage;

  constructor(platform: Platform) {
    platform.ready().then(() => {

      StatusBar.styleDefault();
      Splashscreen.hide();
    });
  }
}  

src/app/app.module.ts ressemble à:

import { NgModule, ErrorHandler } from '@angular/core';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
import { LoginPage } from '../pages/login/login';
import { AuthService } from '../providers/auth-service';
import { HttpModule, JsonpModule } from '@angular/http';

@NgModule({
  declarations: [
    MyApp,
    LoginPage,
    HttpModule,
    JsonpModule,

  ],
  imports: [
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    LoginPage
  ],
  providers: [{provide: ErrorHandler, useClass: IonicErrorHandler},AuthService]
})
export class AppModule {}

Bien entendu, tous les autres fichiers nécessaires (page/login/login. * Et fournisseur/auth-service.ts) sont définis, il n’ya donc aucune erreur de fichier ou de service manquante.

LE PROBLÈME:

Lorsque je construis l'application via ionic serve, le processus se termine sans erreur, mais lors du lancement de l'application dans le navigateur, j'obtiens cette erreur:

Module "HttpModule" inattendu déclaré par le module "AppModule"
Néanmoins, je ne fais que suivre les instructions de ce tutoriel de la documentation officielle .
Je fais des recherches sur Google depuis quelques heures sans trouver de solution de rechange.
Quelqu'un peut-il me dire ce que je fais mal?

4
Philippe Simo

Vous devez importerHttpModulecomme suit,

imports: [   
    HttpModule,
    JsonpModule
    ...
    ...
}

NOTE: Idem avecJsonpModule. Et n'oubliez pas de les supprimer dedeclarationsarray.

5
micronyks

La propriété declarations est utilisée pour déclarer tous les composants et tous les tuyaux que vous avez dans ce module, ce qui vous permet de les utiliser dans le module.

Pour utiliser un autre module du module actuel, vous devez utiliser la propriété imports, comme ceci:

@NgModule({
  declarations: [
    MyApp,
    LoginPage
  ],
  imports: [
    IonicModule.forRoot(MyApp),
    HttpModule,
    JsonpModule
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    LoginPage
  ],
  providers: [{provide: ErrorHandler, useClass: IonicErrorHandler},AuthService]
})
1
Supamiu

En ce qui concerne Ionic 2, vous n'avez pas besoin d'importer séparément HttpModule . IonicModule le fait pour vous comme dans le lien:

exports: [
    BrowserModule,
    HttpModule,
    FormsModule,
    ReactiveFormsModule,

Vous pouvez directement utiliser les composants.Similaire pour les formulaires.

0
Suraj Rao