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
снова и снова
Как я могу предотвратить эту картину?