簡體   English   中英

用Angular Universal進行Ngx-翻譯

[英]Ngx-translate with Angular Universal

我剛剛從升級ng2-translatev. 5.xx )到ngx-translatev. 6.xx在我的角2通用應用程序)。

在升級之前,我正在使用此加載程序( 在此處找到 ):

class TranslateUniversalLoader implements TranslateLoader {
  public getTranslation(lang: string): Observable<any> {
    return Observable.create(observer => {
      observer.next(JSON.parse(fs.readFileSync(`src/i18n/${lang}.json`, 'utf8')));
      observer.complete();
    });
  }
}

我使用的是這樣的:

@NgModule({
  bootstrap: [AppComponent],
  declarations: [ AppComponent ],
  imports: [
    FormsModule,
    CoreModule,
    ViewsModule,
    TranslateModule.forRoot({
      provide: TranslateLoader,
      useClass: TranslateUniversalLoader,
    }),
    UniversalModule
  ]
})

但是,升級到ngx-translate后,我在終端控制台中收到此錯誤(因此是服務器端錯誤):

Module build failed: Error: /src/app/app.node.module.ts (65,7): 
Argument of type '{ provide: typeof TranslateLoader; useClass: typeof TranslateUniversalLoader; }' is not assignable to parameter of type 'TranslateModuleConfig'.

因此,誰知道如何通過ngx-translate為Angular Universal設置服務器端支持的自定義加載程序?

該解決方案比預期的要容易得多,並且在遷移指南中進行了詳細說明

6.xx ,更改代碼的更改是傳遞給forRoot()的期望值。

現在,我們需要將加載程序作為loader鍵的對象傳遞,如下所示:

TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useClass: TranslateUniversalLoader,
  }
}),

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM