2017-07-28 6 views
6

Ich entwickle eine Ionic 2 Mobile App und möchte ngx-translate Funktionen verwenden. Tutorial Nach, ich bin wie diese notwendigen Dateien in App-Modul importieren:Argument des Typs "Http" ist nicht zu Parameter des Typs "Http" in Ionic ngx-translate zuweisbar

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'); 
} 

, die den Fehler verursacht:

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

Ich denke, es ist eine Abweichung von Paketen erwartet von NGX-translate aber Ich kann nicht herausfinden, was und wie. Meine @ angular/http-Version ist 4.3.2 Hat jemand eine Idee, was zu tun ist?

Antwort

18

ist das Problem aufgrund eines Konflikts Version, vielleicht haben Sie eine "^ 1.0.2" Version installiert "@ NGX-translate/http-loader" althought Ihre Funktion ist für eine frühere Version. Mach dir keine Sorgen! Sie müssen nur Httpclient verwenden, statt Http ..

vergessen Sie nicht den Wert von ‚deps‘ konstant und importieren Sie die HttpClientModule in Ihrem Modul (oder in Ihrem app.module)

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

zu ändern
14

Versuchen Sie es mit 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 { } 
+0

Ihr Vorschlag hat bei mir funktioniert. Vielen Dank!!! –

+0

arbeitete wie ein Charme, sollte als Antwort akzeptiert werden. –

+0

Dies sollte die akzeptierte Antwort sein. Arbeitete, danke. –

Verwandte Themen