小编Sam*_*l K的帖子

Angular - 如何在 Angular11 应用程序上将 ngx-translate 与共享模块和延迟加载模块一起使用

我正在开发一个 Angular 项目。我首先在项目中添加了 translaService ,一切都很好。所有组件都正确共享该语言。

当我启用延迟加载时,我已按模块划分了我的项目(这是预期的),并且我注意到翻译后的语言不再在模块之间共享。对于翻译,我使用 ngx-translate。

在 app.module 我有这个:

 TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useFactory: (httpTranslateLoader),
    deps: [HttpClient]
  },
    isolate:false

})

 export function httpTranslateLoader(http: HttpClient) {
   return new TranslateHttpLoader(http, './assets/i18n/', '.json');
 }
Run Code Online (Sandbox Code Playgroud)

在我的共享模块中我有这个:

 export function HttpLoaderFactory(http: HttpClient) {
   return new TranslateHttpLoader(http);
 }

 @NgModule({
   declarations: [],
   imports: [
     CommonModule,
     TranslateModule.forChild({
       loader: {
       provide: TranslateLoader,
       useFactory: HttpLoaderFactory,
       deps: [HttpClient]
     },
     isolate: false,
     extend:true
     })
   ]
   ,
   exports:[TranslateModule]
 })
 export class SharedTranslateModule {
   constructor( translate: TranslateService) {
     translate.addLangs(['en', 'fr']);
     translate.setDefaultLang('en');
     translate.use('en');
   } …
Run Code Online (Sandbox Code Playgroud)

lazy-loading ngx-translate angular11

5
推荐指数
0
解决办法
1309
查看次数

标签 统计

angular11 ×1

lazy-loading ×1

ngx-translate ×1