问题描述
我的Angular应用程序有多个模块,每个模块都有自己的语言文件,并且在app.module.ts文件中加载了一些跨应用程序使用的通用组件。下面是代码
我在ngx-translate / multi-http-loader中使用ngx-translate(核心和http)。
App.module.ts
export function createTranslateLoader(http: HttpClient) {
return new MultiTranslateHttpLoader(http,[
{ prefix: './assets/i18n/app/',suffix: '.json' },{ prefix: './assets/i18n/common/',{ prefix: './assets/i18n/common-components/',{ prefix: './assets/i18n/common-dialogs/',{ prefix: './assets/i18n/shared/',{ prefix: './assets/i18n/report-management/common/',suffix: '.json' }
]);
}
in importing
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,useFactory: (createTranslateLoader),deps: [HttpClient]
},isolate: true
}),
同样,当我尝试使用通用/共享组件翻译的引用时,我在其他模块组件中分别使用 TranslateModule.forChild 在其他模块中分别创建了类似的设置。当我在下面的其他模块中声明时,它们被多次下载。
export function createTranslateLoader(http: HttpClient) {
return new MultiTranslateHttpLoader(http,[
{prefix: './assets/i18n/client-management/',suffix: '.json'},{prefix: './assets/i18n/common-components/',{prefix: './assets/i18n/shared/',suffix: '.json' }
]);
}
in importing
TranslateModule.forChild({
loader: {
provide: TranslateLoader,useFactory: createTranslateLoader,
现在我的问题是,那些常见的翻译已经在app.module中声明,并且在其他模块中引用时没有被调用,而当我在这个惰性模块中再次声明它们时,它们从app.module一次加载了多次另一个来自惰性模块。哪个不应该,因为已经通过app.module调用了它们,为什么不进入我的延迟加载模块。
有人可以建议如何多次停止这些通用文件的多次下载,一旦声明可以在多个模块中使用?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)