Инициализировать var одного компонента, когда я вызываю функцию этого компонента? - PullRequest
0 голосов
/ 11 февраля 2019

Как запустить ngOnInit компонента A, когда я вызываю функцию этого компонента A?

Например:

export class CompositionComponent implements OnInit { 
  measure = new MeasureComponent(this.http);
  constructor(private http: HttpClient) { }

myFunction(){
   measure.functionMeasure();
}

//

export class MeasureComponent implements OnInit {
configCompo;
constructor(private http: HttpClient) { }


ngOnInit() {
    this.getConfigCompo().subscribe(data => {
        this.configCompo = JSON.parse(data);
    });

functionMeasure(){
   console.log(this.configCompo)
}

, нона самом деле this.configCompo не инициализируется, когда я вызываю эту функцию из Composition Component, потому что она инициализируется в ngOnInit ()

1 Ответ

0 голосов
/ 11 февраля 2019

Даже если это звучит странно, по вашему требованию ngOnInit должен вызываться автоматически при инициализации компонента.Но если вы все еще хотите, есть 3 других способа:

  • вызвать measure.ngOnInit() для инициализации меры после ее создания

  • добавить ngOnInit вызовите myFunction в MeasureComponent this.ngOnInit()

  • или добавьте ngOnInit в конструктор MeasureComponent this.ngOnInit()

И имейте в виду, чтоthis.getConfigCompo (). subscribe (...) - асинхронная функция, поэтому вы не можете получить значение сразу после его вызова.Вы можете получить его только в функции обратного вызова

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