0
私のデータの配列とこのデータを描画するためのさまざまなツールを含むDrawingDataService
があります。私はDrawingDataService
をシングルトンのように私のすべてのツールで使いたいと思っています。角2にインジェクタがありません
私は(それシングルトンインスタンスとして作るために)AppModuleプロバイダリストにDrawingDataService
を設定します。
export class LineTool extends BaseTool {
constructor(private injector: Injector) {
super();
let drawingDataService2 = this.injector.get(DrawingDataService);
そして、それはthis.injector
がnullであることを私に言う:その後、私は私のツールでインジェクターを追加
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [
DrawingDataService
],
bootstrap: [AppComponent]
})
export class AppModule { }
。 データを格納するためのシングルトンサービスを作成するのがよい方法ですか?
constuctor(private drawingDataService: DrawingDataService)
そして、あなたは、次の方法でそれを使用することができます:
例が不足しています。インジェクタは、理由なしにnullになることはできません。エラーがあるはずです。クラスには@Injectable()デコレータはありませんか?それがプロバイダの場合は、モジュールにどこに追加されますか?はい、それは良い習慣です。そして、いいえ、injector.getでこれを行う理由はありません。ちょうどサービスを注入してください。 – estus
クラスに '@Injectable()'が設定されていても、同じエラーが発生します。 – papaiatis