2017-07-21 2 views
0

Ich habe ein Modul mit Providern in einer Paketabhängigkeit. Aber wenn ich versuche, es in meinem app.module zu verwenden, erhalte ich:Modul mit Providern als Paketabhängigkeit von Knotenmodule

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 { } 

Antwort

0

Fügen Sie die EnvService in den Anbietern des Moduls auch:

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

Ich habe Ihren Vorschlag, aber ich bekomme immer noch den gleichen Fehler. –

+0

können Sie den EnvService veröffentlichen? Ist es mit @Injectable() dekoriert? – 0mpurdy

+0

Ja, ich habe es: @Injectable() Export-Klasse EnvService {} –

Verwandte Themen