2017-07-28 13 views
6

Tôi đang phát triển ứng dụng di động Ionic 2 và muốn sử dụng các tính năng ngx-dịch. Tiếp theo hướng dẫn này, tôi đang nhập khẩu các file cần thiết trong mô-đun ứng dụng như thế này:Đối số của loại 'Http' không được gán cho tham số kiểu 'Http' trong Ionic ngx-dịch

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

mang đến cho các lỗi:

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

Tôi nghĩ rằng có sự không phù hợp của các gói dự kiến ​​bởi NGX-dịch nhưng tôi không thể hiểu được cái gì và như thế nào. Phiên bản @ angular/http của tôi là 4.3.2 Có ai biết phải làm gì không?

Trả lời

18

vấn đề là do một phiên bản xung đột, có thể bạn cài đặt một phiên bản "^ 1.0.2" của "@ NGX-dịch/http-loader" mặc dù điều chức năng của bạn có sẵn cho phiên bản trước. đừng lo lắng! bạn có chỉ để sử dụng HttpClient thay vì Http ..

đừng quên để thay đổi giá trị của 'DEPS' liên tục và nhập khẩu các HttpClientModule trong module của bạn (hoặc trong app.module của bạn)

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

14

Hãy thử sử dụng 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

đề xuất của bạn đã làm việc cho tôi. Cảm ơn!!! –

+0

hoạt động như một nét duyên dáng, nên được chấp nhận làm câu trả lời. –

+0

Đây phải là câu trả lời được chấp nhận. Làm việc, cảm ơn bạn. –

Các vấn đề liên quan