许多 ngModule 中具有变量的一项服务

One Service with variable in many ngModule

这不是真正的问题,而是一个问题:

在一个测试项目中,我尝试在具有相同 TranslateService 的多个 ngModule 中使用 ng2-translate。

package.json :

"ng2-translate": "^4.0.0"

它不起作用,我必须为每个模块声明一个新的

'TranslateModule'

在组件中,它是一个新的 TranslateService,因此它不会保留翻译语言值。

您是否尝试在多个 ngModule 中注入相同的服务?如果是,怎么办?

谢谢。

尝试共享模块

   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()。