6

2 つの Angular ライブラリを作成しました。一方にはもう一方が依存関係にあります。

依存関係は forRoot メソッドを使用して構成する必要があります。親ライブラリからその依存関係に構成データを渡すにはどうすればよいですか?

たとえば、依存関係として があるとしますTopLevelLibOtherLibOtherLib には、forRoot を使用して構成オブジェクトを渡す必要があります。

エンド ユーザーの AppModule、インポート先

@NgModule({
  imports: [
    TopLevelLib.forRoot(someConfigData)
  ],
  declarations: [...],
  exports: [...]
})
export class AppModule { }

TopLevelLib - エンド ユーザーが AppModule にインポート

@NgModule({
  imports: [
    ...
    OtherLib.forRoot(*****what goes in here?*****)
  ],
  declarations: [...],
  exports: [...]
})
export class TopLevelLib {
  static forRoot(config: ConfigObj): ModuleWithProviders {
    return {
      ngModule: SampleModule,
      providers: [{ provide: SomeInjectionToken, useValue: config }]
    };
  }
}

OtherLib - TopLevelLib によってインポートされました

@NgModule({
  imports: [...],
  declarations: [...],
  exports: [...]
})
export class OtherLib {
  static forRoot(config: ConfigObj): ModuleWithProviders {
    return {
      ngModule: SampleModule,
      providers: [{ provide: SomeInjectionToken, useValue: config }]
    };
  }
}

必要なのは、構成オブジェクトのインスタンスを TopLevelLib から OtherLib に渡すことです。そのため、エンド ユーザーが forRoot を使用して TopLevelLib を構成すると、OtherLib が同じデータで構成されます。

これを実装する方法についてのアイデアはありますか?

4

2 に答える 2