一个服务在多个ngModule中都有变量



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

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

包。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中的TranslateModule.forRoot()。

最新更新