2017-07-21 3 views
0

J'ai un module avec des fournisseurs dans une dépendance de paquet. Mais lorsque je tente de l'utiliser dans mon app.module je reçois:Module avec les fournisseurs en tant que paquet dépend de node_modules

Error: No provider for EnvService! 

/node_modules/common-components/env.module:

import { NgModule, ModuleWithProviders } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 

import { WindowService } from './window.service'; 
import { EnvService } from './env.service'; 

export function windowFactory() { 
    return window; 
} 

@NgModule({ 
    imports: [ 
    CommonModule 
    ] 
}) 
export class EnvModule { 
    static forRoot(): ModuleWithProviders { 
    return { 
     ngModule: EnvModule, 
     providers: [ 
     EnvService, 
     { provide: WindowService, useFactory: windowFactory } 
     ] 
    } 
    } 
} 

app.module.ts

import { EnvModule } from 'common-components'; 

@NgModule({ 
    declarations: [ 
    AppComponent 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    ReactiveFormsModule, 
    HttpModule, 
    EnvModule.forRoot() 
    ], 
    bootstrap: [ AppComponent ] 
}) 
export class AppModule { } 

Répondre

0

Inclure le EnvService dans les fournisseurs du module ainsi:

import { NgModule, ModuleWithProviders } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 

import { WindowService } from './window.service'; 
import { EnvService } from './env.service'; 

export function windowFactory() { 
    return window; 
} 

@NgModule({ 
    imports: [ 
    CommonModule 
    ], 
    providers: [ 
    EnvService 
    ] 
}) 
export class EnvModule { 
    static forRoot(): ModuleWithProviders { 
    return { 
     ngModule: EnvModule, 
     providers: [ 
     EnvService, 
     { provide: WindowService, useFactory: windowFactory } 
     ] 
    } 
    } 
} 
+0

J'ai fait votre suggestion, mais j'ai toujours la même erreur. –

+0

pouvez-vous poster l'EnvService? Est-il décoré avec @Injectable()? – 0mpurdy

+0

oui, je l'ai: @Injectable() export classe EnvService {} –