类型'Http'的参数不能分配给Ionic ngx-translate中'Http'类型的参数

Adn*_*urt 12 http ionic-framework ngx-translate

我正在开发一款Ionic 2移动应用,并希望使用ngx-translate功能.在本教程之后,我将在app模块中导入必要的文件,如下所示:

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');
}
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

 Argument of type 'Http' is not assignable to parameter of type 'Http'.
 Property 'handler' is missing in type 'Http'
Run Code Online (Sandbox Code Playgroud)

我认为ngx-translate预期的包装不匹配,但我无法弄清楚是什么以及如何.我的@ angular/http版本是4.3.2有谁知道该怎么办?

Sma*_*lns 37

这个问题是由于冲突的版本,也许你安装了"@ NGX-翻译/ HTTP装载机"的"^ 1.0.2"版本althought的功能适用于以前的版本.别担心!你只需要使用HttpClient而不是Http ..

不要忘记更改'deps'常量的值并导入模块中的HttpClientModule(或在app.module中)

不要忘记更改'deps'常量的值并导入模块中的HttpClientModule(或在app.module中)

  • 您可以共享代码而不是图像,因为它很难复制 (7认同)

小智 27

尝试使用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 { }
Run Code Online (Sandbox Code Playgroud)