Angular 2 Keep ng2-transly DRY при использовании нескольких модулей

Я новичок в работе с Angular 2 и у меня есть вопрос относительно сохранения кода СУХОЙ при использовании нескольких модулей.

У меня есть общий модуль, где я импортирую и экспортирую часто используемые функции для других модулей.

Одним из таких импортеров является ng2-translate.

Но когда я импортирую SharedModule в новый модуль, мне нужно будет импортировать и настроить TranslateModule снова из ng2-translate, чтобы можно было его настроить.

Это дает мне шаблон, который мне не нравится, если я должен работать с несколькими модулями.

Итак, как бы я сохранил этот код СУХИМ и сохранил лучшие практики?

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TranslateModule } from 'ng2-translate';

@NgModule({
  imports: [
    CommonModule,
    TranslateModule
  ],
  exports: [
    CommonModule,
    TranslateModule
  ]
})

export class SharedModule {
}

AppModule

import { NgModule } from '@angular/core';
import { HttpModule, Http } from '@angular/http';
import { TranslateModule, TranslateLoader, TranslateStaticLoader, TranslateService } from 'ng2-translate';
import { SharedModule } from './shared/shared.module';
import { AppComponent } from './app.component';

export function translateLoaderFactory(http: Http) {
  return new TranslateStaticLoader(http, '../assets/i18n', '.json')
}

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    HttpModule,
    TranslateModule.forRoot({
      provide: TranslateLoader,
      useFactory: translateLoaderFactory,
      deps: [Http]
    }),
    SharedModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {
  constructor(translateService: TranslateService) {

    translateService.setDefaultLang('en-US');

    translateService.use('sv-SE');
  }
}

Это моя основная структура, если я добавлю новый модуль, мне придется импортировать SharedModule, TranslateModule и установка языка по умолчанию с помощью TranslateService снова и снова

Как я могу предотвратить эту картину?

0 ответов

Другие вопросы по тегам