サービス全体を使用したい場合は、app.module.ts
のプロバイダーとして宣言する必要がありますが、app.component.ts
で宣言されている場合にも機能します。角2のコンポーネントでサービスを提供しない理由
これら2つのアプローチに大きな違いはありますか?
サービス全体を使用したい場合は、app.module.ts
のプロバイダーとして宣言する必要がありますが、app.component.ts
で宣言されている場合にも機能します。角2のコンポーネントでサービスを提供しない理由
これら2つのアプローチに大きな違いはありますか?
AppModule
で宣言されている3つのコンポーネントがあるとします。それぞれのコンポーネントに個別にサービスを提供する場合、サービスごとに独自のサービスインスタンスがありますが、AppModule
でサービスを提供すると、サービスはシングルトンになります - 各コンポーネントはの同一インスタンスをそのサービスと共有します。 app.module.ts
対app.component.ts
を使用して
はちょうどnaming conventionあるとprogrammitcally角度で何かを決定するものではありません。このコードは、サービスがどこにあっても動作します。代わりに、app.module.ts
ではなく、service-name.service.ts
ファイルにサービスを配置する方が理にかなっています。しかし、Stefan Svrkotaの回答に示されているように、コードの再利用の利点が得られます
この回答は誤解を招くものです。慣例として、app.module.tsはモジュールであり、app.component.tsはコンポーネントであると予想されます。これらは2つの非常に異なるものです。この答えが示すように、2つの異なる名前を持つ同じファイルではありません。 – Bruford
私は "app.component.tsで宣言されていれば"と応答しています。 - 命名規則は単に規約ではAngularで何も決まっていないということです。 –