我是使用 Angular 2 的新手,并且有一个关于在使用多个模块时保持代码干燥的问题。
我有一个共享模块,我在其中导入和导出其他模块的常用功能。
其中一个进口是 ng2-translate。
但是当我将它SharedModule
导入一个新模块时,我需要再次导入和配置TranslateModule
from 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 {
}
应用模块
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
。
如何防止这种模式?