我已将Angular 5升级到7,并保持 rxjs-compat 。在这种情况下,应用程序运行正常,但是后来我们删除了 rxjs-compat 并进行了相应的更改。而且加载时出现错误 在引导应用程序时将应用程序标记为“ 设置不可达”。 我们正在使用
"@ngx-config/core": "7.0.0",
"@ngx-config/http-loader": "7.0.0",
我怀疑此软件包在升级后会产生一些问题。但是编译成功,只有在运行应用程序时,它才会显示控制台错误,因为端点无法访问。 其他任何人都面临着这个问题,或者任何想法如何调试这类问题。
任何帮助将不胜感激
编辑
经过进一步分析,我发现此错误是由于@ ngx-config更新而发生的,与rxjs-compat无关。
// for config loader
export function configFactory(http: HttpClient): ConfigLoader {
return new ConfigHttpLoader(http, environment.configFile);
}
拦截器
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
//etc
})
答案 0 :(得分:0)
我尝试了github和SO中提到的许多方法,对我而言没有任何锻炼。我要做的最后一件事是
在应用程序引导之前在主.ts中调用config并在会话存储中进行设置,您可以创建一个类文件,并在那里进行逻辑处理。
const url = "configurl"// read from your environment file
const xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = () => {
if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
if (xmlHttp.responseText) {
const config: any = JSON.parse(xmlHttp.responseText);
if (config) {
window.sessionStorage.setItem("config", JSON.stringify(config));
}
}
};
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
Appmodule
export function configFactory(http: HttpClient): ConfigLoader {
return new ConfigStaticLoader(JSON.parse(window.sessionStorage.getItem("config")));
}
这对我来说很好。
最初的问题是,我无法同时使用配置加载程序和http拦截器。