为什么我会丢失角度的this.variable值?

时间:2019-06-27 06:04:28

标签: angular

我调用了一个实例化我的控制器变量值的函数,但是当我对这个变量中的每个变量进行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);
  });
}

我希望变量不会不确定

2 个答案:

答案 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,它是异步的。您不确定何时触发订阅。可以随时随地。现在,您正在经历的日志记录完成之后。