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

时间:2018-04-19 13:30:19

标签: angular

当我使用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 个答案:

答案 0 :(得分:0)

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

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