0
我有一個程序包依賴項中的提供程序模塊。但是,當我嘗試在我的app.module使用它我得到:提供程序作爲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 { }
我做了你的建議,但我仍然得到同樣的錯誤。 –
你可以發佈EnvService嗎?它是用@Injectable()裝飾的嗎? – 0mpurdy
是的,我擁有它: @Injectable() export class EnvService {} –