这不是一个真正的问题,但它是一个问题:
在测试项目中,我尝试在具有相同TranslateService的多个ngModule中使用ng2-translate。
package.json:
"ng2-translate": "^4.0.0"
它不起作用,因为每个模块都必须声明一个新的
' TranslateModule'
在组件中,它是一个新的TranslateService,因此它不会保留翻译语言的价值。
您是否尝试在多个ngModule中注入相同的服务?如果有,怎么样?
感谢。
答案 0 :(得分:1)
尝试共享模块
import {TranslateModule, TranslateService, TranslateLoader, TranslateStaticLoader} from 'ng2-translate/ng2-translate';
@NgModule({
imports: [..,TranslateModule],
declarations: [..],
exports: [ .., TranslateModule]
})
export class SharedModule {
static forRoot(): ModuleWithProviders {
function translateLoader(http: Http) {
return new TranslateStaticLoader(http, 'i18n', '.json');
}
return {
ngModule: SharedModule,
providers: [UserService, ItemService, {
provide: TranslateLoader,
useFactory: translateLoader,
deps: [Http]
},
TranslateService],
};
}
}
将AppModule.ts中的TranslateModule.forRoot()更改为SharedModule.forRoot()。