私のアプリケーションにはMainServiceとRightClickServiceという2つのサービスがあります。 MainServiceだけがアプリケーションでグローバルにアクセスでき、RightClickServiceはMainServiceに注入されます。したがって、私は、次のファイルを定義した:角2:(インジェクション)サービスのプロバイダがありません
app.module.ts
@NgModule({
declarations: [
AppComponent,
...
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [MainService],
bootstrap: [AppComponent]
})
export class AppModule { }
RightClickServiceはapp.module.tsに記載されていません。
service.ts
@Injectable()
export class MainService {
constructor(private rightClickService: RightClickService) {
console.log("Constructor is init");
}
}
RightClickServiceだけ大きなアプリケーションRightClickComponent内という名前のコンポーネントに存在します。
右click.component.ts:
@Component({
selector: 'right-click',
template: `
...
`,
styleUrls: ['...'],
providers: [RightClickService]
})
export class RightClickComponent implements OnInit {
constructor(private rightClickService: RightClickService) {}
}
はそれでも、私はエラーを取得する:
EXCEPTION: No provider for RightClickService!
あなたは私が間違ってやっている知っていますか?
'(私的なrightClickService:MainService)に変更 ' – Bean0341
何ですか?どうして?どこを変更するのですか? – CrazySynthax
'MainService'は' RightClickService'のプロバイダをNgModuleで提供しないため、プロバイダを見つけることができません。 – yurzui