import { APP_INITIALIZER, Injector, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { HttpClientModule } from '@angular/common/http' import { AppComponent } from './app.component'; import { FormsModule } from '@angular/forms' import { RouterModule } from '@angular/router' import { NzLayoutModule } from 'ng-zorro-antd/layout' import { NzIconModule, NzIconService } from 'ng-zorro-antd/icon'; import { NzCardModule } from 'ng-zorro-antd/card'; import { NzTagModule } from 'ng-zorro-antd/tag'; import { NzModalModule } from 'ng-zorro-antd/modal'; import { PlatformListModule } from './components/platform-list/platform-list.module'; import { EventListModule } from './components/event-list/event-list.module'; import { MenuListModule } from './components/menu-list/menu-list.module'; import { NzMessageModule } from 'ng-zorro-antd/message'; import { NzButtonModule } from 'ng-zorro-antd/button'; import { NzGridModule } from 'ng-zorro-antd/grid'; import { NzStatisticModule } from 'ng-zorro-antd/statistic'; import { NzInputModule } from 'ng-zorro-antd/input'; import { NzSelectModule } from 'ng-zorro-antd/select'; import { NzMenuModule } from 'ng-zorro-antd/menu'; import { AdminLayoutComponent } from './layout/admin/admin.component'; import { UserGuard } from './services/user-guard'; @NgModule({ declarations: [ AppComponent, AdminLayoutComponent ], imports: [ BrowserModule, HttpClientModule, BrowserAnimationsModule, FormsModule, RouterModule.forRoot([{ path: '', pathMatch: 'full', redirectTo: 'home' }, { path: '', component: AdminLayoutComponent, canActivate: [ UserGuard ], children: [ { path: 'home', loadChildren: () => import('./pages/home-page/home-page.module').then(res => res.HomePageModule) }, { path: 'rest', loadChildren: () => import('./pages/rest-page/rest-page.module').then(res => res.RestPageModule) }, { path: 'trend-topic', loadChildren: () => import('./pages/trend-topic/trend-topic.module').then(res => res.TrendTopicModule) }, ] }, { path: 'loginAdmin', loadChildren: () => import('./pages/login-page/login-page.module').then(res => res.LoginPageModule) }]), NzLayoutModule, NzIconModule.forRoot([]), NzButtonModule, PlatformListModule, NzCardModule, EventListModule, NzTagModule, NzModalModule, NzMessageModule, NzInputModule, NzSelectModule, NzMenuModule, MenuListModule ], providers: [{ provide: APP_INITIALIZER, useFactory: (injector: Injector) => { const icon = injector.get(NzIconService) return async () => { icon.fetchFromIconfont({ scriptUrl: './assets/iconfont/iconfont.js' }) } }, multi: true, deps: [Injector] }], bootstrap: [AppComponent] }) export class AppModule { }