我想在我的项目中导入一个从文件加载的特定配置的模块,该配置文件可以在运行时修改,并且在刷新浏览器时应用程序应该加载新的更改。
我现在正在做的是在“forRoot”方法中将配置文件路径发送到模块,并为配置提供指向“load”方法的“useFactory”,这个“load”方法只是使用HTTP GET检索我的配置文件。在我执行“ng build --prod --build-optimizer”之前,“ng build”似乎一切正常,这导致“遇到静态解析符号值时出错”。
我想它的原因是因为我在静态“forRoot”方法中使用了一个带有“useFactory”的提供程序,并且“useFactory”指向一个非静态方法。怎么可能处理这个?这是一个好方法吗?
这就是我的“forRoot”方法和“initConfig”方法的样子:
export class JwtSecurityModule {
public static forRoot(configPath:string) {
return {
ngModule: JwtSecurityModule,
providers: [
AppConfig,
{
provide: APP_INITIALIZER,
useFactory: initConfig,
deps: [AppConfig, configPath],
multi: true
}
]
};
}
...
}
...
export function initConfig(config:AppConfig, configPath: string) {
return () => config.load(configPath);
}