Присвоение значения локальной переменной внутри функции subscribe () Angular 5? - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть переменная:

isLoading = true;

в моем компоненте, который обновил видимость анимации загрузчика. Я устанавливаю это значение в false, когда подписываюсь на сервис в ngOnInit() ловушке жизненного цикла.

ngOnInit(){service.subscribe(data => {isLoading = false;});}

ngAfterViewInit(){if(isLoading == false){//do something}}

Действие / функция внутри моего ngAfterViewInit() зависит от того, загружены данные или нет. Но когда я console.log переменная isLoading внутри ngAfterViewInit(), она все еще имеет значение true, значение становится ложным где-то позже.

Как с этим справиться, мне нужно установить isLoading в false при загрузке моих данных?

1 Ответ

0 голосов
/ 30 апреля 2018

Проблема в том, что метод ngAfterViewInit и функция подписки не синхронизируются никаким образом. Забудьте этот метод жизненного цикла. Было бы лучше определить свою собственную функцию и вызывать ее, когда данные будут готовы:

ngOnInit(){service.subscribe(data => {
  doSomething(data);
});

//ngAfterViewInit(){}

doSomething(data) {
  //do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...