我有一个变量:
isLoading = true;
在我的组件中,它更新了加载器动画的可见性。当我订阅ngOnInit()
生命周期钩子中的服务时,我将此值设为false。
ngOnInit(){service.subscribe(data => {isLoading = false;});}
ngAfterViewInit(){if(isLoading == false){//do something}}
我的ngAfterViewInit()
内的动作/功能取决于数据是否加载。但是当我console.log
ngAfterViewInit()
内的isLoading变量时,它仍然是真的,稍后某个值会变为false。
如何处理这个问题,我需要在加载数据时将isLoading设置为false?
答案 0 :(得分:1)
问题是ngAfterViewInit
方法和您的订阅功能没有以任何方式同步。忘记那种生命周期方法。最好定义自己的函数,并在数据就绪时调用它:
ngOnInit(){service.subscribe(data => {
doSomething(data);
});
//ngAfterViewInit(){}
doSomething(data) {
//do something
}