我调用了一个实例化我的控制器变量值的函数,但是当我对这个变量中的每个变量进行a运算时,角度告诉我它是未定义的。我需要在哪里实例化此变量?
我的变量首先在构造函数中实例化,当我在html文件中调用它时,它运行良好,但是当我在ngAfterViewInit中调用它时,它是未定义的。
//This is where I call my function and where I use my variable
ngAfterViewInit(){
this.getFamilles();
if(this.listeFamilles) {
for (let f of this.listeFamilles._embedded.familles) {
this.draw("#" + f.nom, this.arriel1, {dateDimension: false, color:
f.color, labelFormat: "%Y"})
}
}else{
console.log('bug');
}
}
//This is my function that instanciate the variable
getFamilles(){
this.serviceFam.getAllFamilles()
.subscribe(data => {
this.listeFamilles = data;
}, err => {
console.log(err);
});
}
我希望变量不会不确定
答案 0 :(得分:1)
您应该尝试以下操作:
getFamilles(){
this.serviceFam.getAllFamilles().subscribe(data => {
this.listeFamilles = data;
if(this.listeFamilles) {
for (let f of this.listeFamilles._embedded.familles) {
this.draw("#" + f.nom, this.arriel1, {dateDimension: false, color:
f.color, labelFormat: "%Y"})
}
} else {
console.log('bug');
}
}, err => {
console.log(err);
});
}
答案 1 :(得分:0)
因为getAllFamilies方法是一个Observable,它是异步的。您不确定何时触发订阅。可以随时随地。现在,您正在经历的日志记录完成之后。