Angular2 - ORIGINAL EXCEPTION:没有UserService的提供者!在延迟加载子组件

时间:2016-08-19 18:51:07

标签: angular2-services angular2-providers

Hola este es mi codigo y no se que estoy haciendo mal realmente,vi muchos otros posts pero no logro que el provider del UserService funcione,les paso mi codigo,desde ya muchas gracias;

el error que me da es el siguiente:

ORIGINAL EXCEPTION: No provider for UserService!

UserService deberia ser un singleton y esta compartido por el sharedModule para que los lazy load child modules lo puedan usar。

app.module.ts

import { NgModule }       from '@angular/core';
import { BrowserModule  } from '@angular/platform-browser';

import { AppComponent }   from './app.component';
import { routing, appRoutingProviders } from './app.routing';

import { SharedModule }  from './shared/shared.module';

import { HomeComponent } from './home.component';

import { LoginComponent } from './login/login.component';

import { DialogService }  from './shared/services/dialog.service';



@NgModule({
    imports:[
        BrowserModule,
        SharedModule.forRoot(),
        routing
        //FormsModule,
        //HttpModule,

        ],

    declarations: [
        LoginComponent,
        AppComponent,
        HomeComponent
        ],

    providers[
        appRoutingProviders,
        DialogService
    ],

    bootstrap:[ AppComponent ]
})
export class AppModule {}

shared.module.ts

import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule }        from '@angular/common';
import { FormsModule }         from '@angular/forms';
import { HttpModule } from '@angular/http';

import { AuthGuard } from './services/auth-guard.service';
import { AuthService } from './services/auth.service';

import { UserService } from './services/user-service';


@NgModule({
  imports:      [ CommonModule ],
  exports:      [ CommonModule, FormsModule, HttpModule ]
})

export class SharedModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: SharedModule,
      providers: [
                   UserService,
                   AuthGuard,
                   AuthService
                  ]
    };
  }
}

usuarios.module.ts

import { NgModule }       from '@angular/core';


import { UsuariosComponent } from './usuarios.component';
import { ListaUsuariosComponent }   from './lista-usuarios.component';
import { DetalleUsuarioComponent } from './detalle-usuario.component';
import { UsuariosAdminComponent }  from './usuarios-admin.component';
import { HomeUsuariosComponent }  from './home-usuarios.component';

import { UsuariosRouting } from './usuarios.routing';

import { SharedModule } from '../shared/shared.module';



@NgModule({
  imports: [
    SharedModule,
    UsuariosRouting

  ],
  declarations: [
    UsuariosComponent,
    ListaUsuariosComponent,
    DetalleUsuarioComponent,
    UsuariosAdminComponent,
    HomeUsuariosComponent
  ]

})
export class UsuariosModule {}

usuarios.component.ts

import { Component } from '@angular/core';

import { UserService } from '../shared/services/user-service';


@Component({
  selector:'usuarios',
  templateUrl: 'app/usuarios/usuarios.component.html'
})


export class UsuariosComponent {

userName = '';
  constructor(userService: UserService) {
    this.userName = userService.userName;
}

}

0 个答案:

没有答案