From 8dd2337c2d65e29034950940a239d0c73540f92a Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Thu, 14 Dec 2017 22:58:52 +0800 Subject: [PATCH] updates --- src/app/app.module.ts | 75 ++++++++++++++++++++++++++++++++----- 1 files changed, 65 insertions(+), 10 deletions(-) diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 926975a..84691c5 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,18 +1,73 @@ import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; +import { NgModule, LOCALE_ID, APP_INITIALIZER, Injector } from '@angular/core'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { TranslateModule, TranslateLoader, TranslateService } from '@ngx-translate/core'; +import { TranslateHttpLoader } from '@ngx-translate/http-loader'; +import { HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http'; - +import { CoreModule } from './core/core.module'; +import { SharedModule } from './shared/shared.module'; import { AppComponent } from './app.component'; +import { RoutesModule } from './routes/routes.module'; +import { LayoutModule } from './layout/layout.module'; +import { StartupService } from './core/services/startup.service'; +import { DefaultInterceptor } from '@core/net/default.interceptor'; +import { AlainAuthModule, SimpleInterceptor } from '@delon/auth'; +// i18n +import { I18NService } from './core/i18n/i18n.service'; +import { ALAIN_I18N_TOKEN } from '@delon/theme'; + +import { registerLocaleData } from '@angular/common'; +import localeZhHans from '@angular/common/locales/zh-Hans'; +registerLocaleData(localeZhHans); + +// AoT requires an exported function for factories +export function HttpLoaderFactory(http: HttpClient) { + return new TranslateHttpLoader(http, `assets/i18n/`, '.json'); +} + +export function StartupServiceFactory(startupService: StartupService): Function { + return () => startupService.load(); +} @NgModule({ - declarations: [ - AppComponent - ], - imports: [ - BrowserModule - ], - providers: [], - bootstrap: [AppComponent] + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + BrowserAnimationsModule, + SharedModule.forRoot(), + CoreModule, + LayoutModule, + RoutesModule, + // auth + AlainAuthModule.forRoot({ + login_url: `/pro/user/login` + }), + // i18n + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useFactory: HttpLoaderFactory, + deps: [HttpClient] + } + }) + ], + providers: [ + { provide: LOCALE_ID, useValue: 'zh-Hans' }, + { provide: HTTP_INTERCEPTORS, useClass: SimpleInterceptor, multi: true}, + { provide: HTTP_INTERCEPTORS, useClass: DefaultInterceptor, multi: true}, + { provide: ALAIN_I18N_TOKEN, useClass: I18NService, multi: false }, + StartupService, + { + provide: APP_INITIALIZER, + useFactory: StartupServiceFactory, + deps: [StartupService], + multi: true + } + ], + bootstrap: [AppComponent] }) export class AppModule { } -- Gitblit v1.8.0