【发布时间】:2020-02-04 19:31:07
【问题描述】:
我在 Angular ngOnInit 上的数组上推送了一些值,并且数据在 ngAfterViewInit 上变得不可用,它将特定值显示为未定义
randomNUMber = [];
ngOnInit() {
this.apiServices.getLineChart(this.coinId).subscribe(resc => {
for (let i =0 ; i < 8 ; i++) {
this.randomNUMber.push(Number(resc.data[i].price));
}
console.log('price1', this.randomNUMber[2]); //it Works
});
}
ngAfterViewInit() {
console.log('price1', this.randomNUMber); //this Wors too
console.log('price1', this.randomNUMber[2]); // But this doesnt work
}
【问题讨论】:
-
ngAfterViewInit事件处理程序可能在getLineChart回调之前调用。 -
那么
console.log('price1', this.randomNUMber);是如何工作的。它获取所有值 -
这是因为控制台中显示的数组内容是在点击展开箭头时被求值的。尝试
console.log('price1', JSON.stringify(this.randomNUMber)));获取实时内容。您还可以尝试使用 this stackblitz,这表明了这种行为。 -
你想在 ngAfterViewInit 中做什么?
标签: arrays angular push ngoninit