如何为我的应用程序实现运行时配置?

时间:2017-07-18 14:58:23

标签: angular

对于我的应用程序,我需要运行时配置(docker架构),所以我不能依赖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()期间访问我的配置:当时配置未定义。 我意识到观察者没有回来。

  1. 是否有更好的方法来解决运行时可配置性问题?
  2. 在我在其他地方使用之前,如何确保配置已经加载我想到了像布尔值" isLoaded"这样的解决方案,甚至检查是否"配置"未定义 - 但必须有更好的方法。
  3. 欢迎任何想法

1 个答案:

答案 0 :(得分:0)

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