Переменная неопределенная наблюдаемая машинопись - PullRequest
0 голосов
/ 28 августа 2018

У меня была проблема здесь, и я кое-что сделал, но я хотел бы знать, если это хороший способ сделать это ...

У меня есть интерфейс:

export interface ContexteEnvironnement {
  langue: string;
  urlPing: string;
  urlFinSession: string;
  urlTimeout: string;
  urlRetour: string;
  urlBaseEpv: string;
}

У меня есть услуга:

contexteEnvironnement: ContexteEnvironnement;

getDataInitialisation(): Observable<ContexteEnvironnement> {
  return this.http.get<ContexteEnvironnement>(configUrl, headerGET);
}

И у меня есть компонент приложения, в который я хочу получить данные:

ngOnInit() {
  this.initialiserProprietes();
}

initialiserProprietes(): void {
  this._serviceConfigInitiale.getDataInitialisation().subscribe(data => {
    this._serviceConfigInitiale.dataInitialisation = data;
   this._langueService.setLangueCourante(data.contexteEnvironnement.langue);
  });
}

У меня была ошибка, говорящая:

ОШИБКА TypeError: Невозможно прочитать свойство 'urlBaseEpv' с неопределенным значением

Поэтому я решил инициализировать мою переменную в моем сервисе:

contexteEnvironnement: ContexteEnvironnement = {
  langue: '',
  urlPing: '',
  urlFinSession: '',
  urlTimeout: '',
  urlRetour: '',
  urlBaseEpv: ''
};

И все работает. Есть ли лучший способ сделать это?

Большое спасибо за советы!

1 Ответ

0 голосов
/ 28 августа 2018

используйте такие классы:

export class ContexteEnvironnement {
    langue = '';
    urlPing = '';
    urlFinSession = '';
    urlTimeout = '';
    urlRetour = '';
    urlBaseEpv = '';
}

, а затем напишите это в вашем сервисе или в любом другом месте:

contexteEnvironnement = new ContexteEnvironnement();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...