У меня есть приложение angular, и клиент хочет, чтобы путь к Backend был в файле json, поэтому он может легко изменить его без необходимости другого развертывания.
Ну, я сделал это, но когда я обновляю sh страницу или закрываю приложение и снова открываю его, приложение не определяет путь к бэкэнду, это похоже на проблему задержки или синхронизации.
Это ошибка в console:
http://***/undefinedapi/Leave/GetlistLeave
Вот как я это сделал: Файл json:
{
"ApiRoot": "http://***/"
}
Как я читал константу из файла json:
import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs';
import { apiRoot } from '../model/model.apiRoot';
import { map } from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class apiRootService {
static apiRoot: string;
constructor(private http: Http) { }
public initialiseApiRoot()
{
this.http.get('./assets/apiRoot/apiRoot.json').pipe(map((response: Response) =>
<apiRoot>response.json())).subscribe(data => {
apiRootService.apiRoot = data['ApiRoot'];
})
}
}
, а затем я вызываю эту функцию в конструкторе app.component.ts следующим образом:
this.apiRootService.initialiseApiRoot();
и изменяю вызов api в каждой службе c например:
return this.http.get(apiRootService.apiRoot + .....
Любой hlp и спасибо