私のアプリケーションには3つのコンポーネントが定義されています。 AppComponent、MainComponentおよびTextComponentです。Angular2 - サービスの提供元が見つかりません
AppComponentには、次のようにMainComponentが含まれています。私はプロバイダに含まれている2つのサービスは、属性私は、CommonEventsService、CommonProductEventsService
@Component({
selector: 'my-app',
template: `
<my-main></my-main>
`,
providers: [CommonEventsService, CommonProductEventsService],
directives: [ROUTER_DIRECTIVES, MainComponent]
})
export class AppComponent implements OnInit, OnDestroy {...}
主なコンポーネントはAppComponentに属性のディレクティブに含まれていることに注意してください。メインコンポーネントは次のように定義されています。
@Component({
template: "<my-add-text></my-add-text>",
selector: "my-main",
directives: [TextComponent]
})
export class MainComponent implements OnInit, OnDestroy {...}
上記のディレクティブ属性にTextComponentが含まれています。 TextComponentは次のように定義されています:
@Component({
selector: "my-add-text",
templateUrl: "/app/scripts/components/add/text.component.html",
})
export class TextComponent {
constructor(private commonProductEvents: CommonProductEventsService){}
}
問題がアプリケーションが読み込まれると、次のエラーが発生します。
EXCEPTION: No provider for CommonProductEventsService! (TextComponent -> CommonProductEventsService) in [addText in [email protected]:13]
しかし、私はCommonProductEventsServiceをAppComponentに登録しました。では、なぜこのエラーが発生していますか?
はプロバイダに宣言することができますどのように多くのサービスに制限はありますか?私はそこに宣言された20のサービスを持っていて、子供のコンポーネントでは、それはエラーを投げています。 –
私は限界があるとは思わないが、少なくともそれほど小さいわけではない。 –
サービスが定義されている順序は重要ですか?彼らはお互いに依存している場合は? –