import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; import { ToolbarComponent } from './toolbar/toolbar.component'; import { NavbarComponent } from './navbar/navbar.component'; import { NameListService } from './name-list/name-list.service'; import { RouterService } from './router.service'; import { StorageService } from './util/storage.service'; import { RestfulService } from './util/restful.service'; import { ApiConfig } from './config/api.config'; /** * Do not specify providers for modules that might be imported by a lazy loaded module. */ @NgModule({ imports: [CommonModule, RouterModule], declarations: [ToolbarComponent, NavbarComponent], exports: [ToolbarComponent, NavbarComponent, CommonModule, FormsModule, RouterModule] }) export class SharedModule { static forRoot(): ModuleWithProviders { return { ngModule: SharedModule, providers: [NameListService, RouterService, StorageService, RestfulService, ApiConfig] }; } }