Как передать параметры конфигурации в угловые библиотеки?

Я создаю библиотеку-оболочку auth-lib для некоторых существующих (и находящихся вне моего контроля) библиотек аутентификации (например, keycloak-angular). Библиотеки аутентификации, которые я упаковываю, должны быть инициализированы параметрами конфигурации во время инициализации приложения или начальной загрузки, что работает при жестком кодировании конфигураций внутри моей библиотеки Wrapper, но я не могу заставить его работать с инъекцией или forRoot из образца приложения для моей оболочки библиотека.

Как передать параметры конфигурации из моего примера приложения через мою библиотеку-оболочку в библиотеки аутентификации?

1 ответ

Решение

Вы можете передать конфигурацию из App.Module, используя forRoot в ваш библиотечный модуль.

Попробуйте вот так:

App.module.ts

 imports: [
      BrowserModule,
      AuthLibModule.forRoot({
        configuration: {configA : "abc", configB : "xyz"}
      })
   ]

AuthLibModule.module.ts

export class AuthLibModule{ 
  static forRoot(configuration): ModuleWithProviders {
    console.log(configuration);
    return {
      ngModule: AuthLibModule,
      providers: [AuthLibService,{provide: 'config', useValue: configuration}]
    };
  }
}

AuthLibService.service:

export class AuthLibService{

  constructor(@Inject('config') private config:any) {
    console.log(config)
   }
}
Другие вопросы по тегам