2017-01-20 3 views
1

У меня есть LocalizationModule, который предоставляет 3 услуги и 1 трубу, которая зависит от одной из услуг, которая зависит от вторых двух (а именно: I18nService, LocaleService, TranslateService, TranslatePipe).Должен ли я разделить модуль углового модуля на модуль модулей и модулей поставщиков?

Теперь я хочу предоставить заказчиков для I18nService и LocaleService. Поэтому я импортирую LocalizationModule в свой AppModule и предоставляю специализированные поставщики для определенных услуг. Чтобы он работал в дочерних компонентах (ленивый), мне нужно импортировать LocalizationModule в дочерние компоненты. И тогда мои пользовательские поставщики больше не предоставляют дочерние компоненты.

В идеале, я бы хотел, чтобы эти сервисы были одинакими для всего приложения. Является ли хорошей практикой разделение таких модулей на два модуля: один для поставщиков, а другой для компонентов? Например, LocalizationModule и LocalizationProvidersModule? Или есть ли более аккуратный и более тонкий способ сделать это?

ответ

0

Реализовать forRoot() в LocalizationModule и предоставляют глобальные услуги только там, а затем импортировать его в AppModule как

@NgModule({ 
    imports: [LocalizationModule.forRoot()] 
    providesr: [myProvidersThatOverrideImportedProviders] 

Смотрите также https://angular.io/docs/ts/latest/guide/ngmodule.html#!#core-for-root

+1

Да, это работает! Еще раз спасибо! – EwanCoder