提问者:小点点

在angular5中,我无法访问foreach循环中的方法


当我使用httpClient获取一个对象数组时,我可以访问数组中每个对象的属性,但我不能访问方法。我不明白为什么,以及如何做到这一点。

this.interventionService.getInterventions().subscribe(interventions =>
        { 
            interventions.forEach(it => {

               console.log(it.InterventionId); // property can be accessed
               console.log(it.myMethod()); // myMethod cannnot be accessed

               // I get an error: 'myMethod is not a function'

            });
        });

但是,如果我创建一个新对象,我可以访问以下方法:

var it = new Intervention();
it.myMethod(); // no error

多谢帮忙


共1个答案

匿名用户

您需要使用bind为方法设置正确的this上下文。

this.interventionService.getInterventions().subscribe(interventions => {
  interventions.forEach(it => {
      it.myMethod.bind(it)();
  });
});