import {Inject, Injectable} from '@angular/core'; import { Location,PathLocationStrategy,LocationStrategy } from '@angular/common'; import {HttpClient, HttpXhrBackend} from '@angular/common/http'; import {Observable} from 'rxjs'; @Injectable() export class AppConfig { private config: Object = null; private httpClient: HttpClient; constructor(xhrBackend: HttpXhrBackend,private location:Location) { this.httpClient = new HttpClient(xhrBackend); this.config = null; } public getConfig(key: any) { if (!this.config.hasOwnProperty(key)) { console.error(`Config key ${key} not set`); } return this.config[key]; } public load(): Promise { const url = this.location.prepareExternalUrl('/configuration.json'); return this.httpClient.get(url) .toPromise() .then(data => { this.config = data; //return data; }) .catch(error => this.config = null); } }