Question L'argument de type 'Http' n'est pas assignable à un paramètre de type 'Http' dans Ionic ngx-translate


Je développe une application mobile Ionic 2 et je souhaite utiliser les fonctionnalités de ngx-translate. Après le tutoriel, j'importe les fichiers nécessaires dans le module de l'application comme ceci:

import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpModule, Http } from '@angular/http';
...

export function createTranslateLoader(http: Http) {
  return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}

ce qui donne l'erreur:

 Argument of type 'Http' is not assignable to parameter of type 'Http'.
 Property 'handler' is missing in type 'Http'

Je pense qu'il y a une incohérence des paquets attendus par ngx-translate mais je ne peux pas savoir quoi et comment. Ma version @ angular / http est 4.3.2 Quelqu'un a une idée de ce qu'il faut faire?


9
2017-07-28 11:26


origine


Réponses:


le problème est dû à une version de conflit, peut-être vous avez installé une version "^ 1.0.2" de "@ ngx-translate / http-loader" bien que votre fonction soit disponible pour une version précédente. ne t'inquiète pas! il vous suffit d'utiliser HttpClient au lieu de HTTP ..

N'oubliez pas de changer la valeur de la constante 'deps' et importez le HttpClientModule dans votre module (ou dans votre app.module)

don't forget to change the value of 'deps' constant and import the HttpClientModule in your module (or in your app.module)


30
2017-08-09 04:45



Essayez d'utiliser HttpClient

import {HttpClientModule, HttpClient} from '@angular/common/http';
import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';
import {AppComponent} from "./app.component";

export function HttpLoaderFactory(http: HttpClient) {
    return new TranslateHttpLoader(http, "./assets/i18n/", ".json");
}

@NgModule({
    declarations: [
        AppComponent
      ],
    imports: [
        BrowserModule,
        HttpClientModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: HttpLoaderFactory,
                deps: [HttpClient]
            }
        })
    ],
    bootstrap: [AppComponent]
})
export class AppModule { }

24
2017-07-28 22:54