我的應用程序中有兩項服務 - MainService和RightClickService。只有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!
你知道我在做什麼錯?
更改爲'(private rightClickService:MainService)' – Bean0341
什麼?爲什麼?在哪裏改變它? – CrazySynthax
'MainService'無法找到'RightClickService'的提供者,因爲您不在NgModule中提供它 – yurzui