如何将配置参数传递给 angular 库?

How to pass configuration parameters to angular libraries?

我正在为一些现有的(并且不受我控制的)身份验证库(例如 keycloak-angular)构建一个包装器库 'auth-lib'。 我正在包装的身份验证库需要在应用程序初始化或引导期间使用配置参数进行初始化,这在我的包装器库中硬编码配置时有效,但我无法使用注入或 forRoot 从我的包装器示例应用程序图书馆。

如何将我的示例应用程序中的配置参数通过我的包装器库传递到身份验证库?

您可以使用 forRoot 将 App.Module 中的配置传递给您的库模块。

这样试试:

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)
   }
}