CalculationServiceというサービスがあります。このサービスは@Injectable()
と宣言されています。このサービスは、注入されたクラスをたくさん使用します。それぞれのクラスは@Injectable()
と宣言され、@Inject()
を介してCalculationServiceのコンストラクタに渡されます。Angular 2 - NgModuleとしてのサービスは、すべてのプロバイダを宣言する必要はありませんか?
今、私は私のアプリ内サービスを使用する場合、AppComponentは、この(便宜上、私は活字体の輸入を省略)のようになります。
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
RouterModule.forRoot(routeConfig),
PlannerModule
],
providers: [
InputService,
Bausparen,
BausparenInput,
Girokonto,
GirokontoInput,
Immobilien,
ImmobilienInput,
Lebensversicherung,
LebensversicherungInput,
Rentenversicherung,
RentenversicherungInput,
Tagesgeld,
TagesgeldInput,
Termingeld,
TermingeldInput,
Wertpapiere,
WertpapiereInput
],
bootstrap: [AppComponent]
})
export class AppModule {
}
私はすべてにアクセスする必要はありませんプロバイダは直接appモジュールで宣言しました。必要な唯一のクラスはCalculationServiceですが、サービスでプロバイダを宣言する方法はわかりません。
サービスをモジュールとしてリファクタリングする、つまりCalculationService内でプロバイダを宣言する方法はありますか?または、私は@Injectable()
(Bausparenなど)をすべて削除し、Calculation Service内でオブジェクトを作成して、プロバイダが不要になるようにする必要がありますか?
を実装してインポートする必要がありますか? –
実際に '宣言 'なしでモジュールを試したことはありませんが、' declarations'と 'bootstrap'を省略しようとします。 –