小编jaz*_*azz的帖子

APP_INITIALIZER 和相关令牌解析问题

我正在使用 APP_INITIALIZER 从 json 获取配置并且它工作正常。早些时候我有一个身份验证保护作为应用程序的一部分,它曾经很好用。

然后我们将授权逻辑拆分到一个库中,如果我们调用 forRoot() 或者如果我们为 config 提供静态值但允许动态配置,我使用库中的 InjectionToken 来提供配置而不调用 forRoot,它可以正常工作。

app.module.ts的代码是这样的:

let authConfig: any;

export function authConfigFactory() {
  return authConfig;
}

export function appInitializerFn(appConfigService: AppConfigService) {
  return () => {
    return appConfigService.loadAppConfig().then(() => {
      authConfig = {
        clientId: appConfigService.getConfig().CLIENT_ID,
        tokenEndpoint: appConfigService.getConfig().TOKEN_URL,
        redirectURL: "http://localhost",
      };
    });
  };
};

@NgModule({
.....
  imports: [
..
AuthLib
],
  providers: [
    AppConfigService,
    {
      provide: APP_INITIALIZER,
      useFactory: appInitializerFn,
      multi: true,
      deps: [AppConfigService]
    },
    AuthLibService,
    {
      provide: 'authConfig',
      useFactory: authConfigFactory,
      deps: []
    }, …
Run Code Online (Sandbox Code Playgroud)

typescript angular

7
推荐指数
1
解决办法
2695
查看次数

标签 统计

angular ×1

typescript ×1