Je développe une application mobile Ionic 2 et je souhaite utiliser les fonctionnalités de ngx-translate. Suite au tutoriel, j'importe les fichiers nécessaires dans le module d'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 incompatibilité de paquets attendue par ngx-translate mais je ne peux pas comprendre quoi et comment. Ma version @ angular/http est 4.3.2 Quelqu'un at-il une idée de quoi faire?
le problème est dû à une version de conflit, vous avez peut-être 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 suffit d'utiliser HttpClient au lieu de Http ..
n'oubliez pas de changer la valeur de la constante 'deps' et d'importer le HttpClientModule dans votre module (ou dans votre app.module)
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 { }