在我的angular应用程序中有一个外部配置文件,因此我可以更改f.e.没有构建的API网址。
另外,我使用@auth-angular-jwt
在导入部分的 app-module.ts 中,我必须像这样声明JWTModule:
df['Col5'] = df.Col3 * df.Col4
gf = df.groupby(['col1', 'Col5'])
对于JWT模块,我必须提供一个whitelistedDomains数组。 这也应该从配置文件中读取。
这不起作用,因为APP_INITIALIZER在导入部分之后运行。所以我的AppConfig是未定义的。我该怎么做到。
这是我的AppConfig的样子:
imports: [
...
JwtModule.forRoot({
config: {
tokenGetter: tokenGetter,
whitelistedDomains: getWhiteList()
}
})
],
...
],
providers: [
AppConfig,
{ provide: APP_INITIALIZER,
useFactory: initializeApp,
deps: [AppConfig], multi: true },
],
bootstrap: [AppComponent]
})
这是我的配置:
import { Http, Response } from '@angular/http';
import { IAppConfig } from './app-config.model';
import { Injectable } from '@angular/core';
@Injectable()
export class AppConfig {
static settings: IAppConfig;
constructor(private http: Http) {}
load() {
const jsonFile = `assets/config/config.json`;
return new Promise<void>((resolve, reject) => {
this.http.get(jsonFile).toPromise().then((response : Response) => {
AppConfig.settings = <IAppConfig>response.json();
resolve();
}).catch((response: any) => {
reject(`Could not load file '${jsonFile}': ${JSON.stringify(response)}`);
});
});
}
}
有什么想法吗?
最诚挚的问候!