2017-07-18 59 views
0

对于我的应用程序,我需要运行时配置(码头架构),所以我不能依赖Angular的环境机制。 所以我创建了我这样写我自己的配置文件:如何为我的应用程序实现运行时配置?

@Injectable() 
export class ConfigService { 

    config; 

    constructor(private http: Http) { 
    this.loadConfig(); 
    } 

    loadConfig() { 
    this.http.get('./../../../assets/config.json') 
     .map((res: Response) => res.json()) 
     .catch((error: any) => Observable.throw(error.json().error || 'Server error')) 
     .subscribe(data => { 
     this.config = data; 
     }) 
    } 
} 

这个工作顺利,直到我试图在其他组件的nngOnInit()来访问我的配置:配置在当时不确定。 我意识到observable没有返回。

  1. 是否有更好的方法解决运行时可配置?
  2. 我怎么能确保配置已加载之前我在别处使用它?我想到像布尔型“isLoaded”这样的解决方案,或者甚至检查“config”是否未定义 - 但必须有更好的方法。

任何想法是值得欢迎的

+0

我解决了我的问题以下这种方法:https://stackoverflow.com/questions/41619443/how-to-call-an-rest-api-while-bootstrapping-angular-2-app – Tim

回答

0

This post告诉你如何挂钩到角的APP_INITIALIZER常数来解决这个问题。

相关问题