从forEach

时间:2017-11-30 11:28:14

标签: javascript vue.js vuejs2

我的数据中有以下变量:

 data: function () {
    return {
      myVariable: false,
    }
  }

如何使用循环函数访问此变量,如下所示?

  anArray.forEach(function(item) {
      this.myVariable = true; 
      // do something
  });

我得到了这个'未定义为查看当前循环函数,而不是vuejs对象。

2 个答案:

答案 0 :(得分:4)

使用箭头功能,这样就不会在forEach循环中创建新范围,并保留Vue组件的this引用。

 anArray.forEach((item) => {
  this.myVariable = true; 
  // do something
});

答案 1 :(得分:3)

您可以将this绑定到函数的范围:

anArray.forEach(function(item) {
  this.myVariable = true; 
  // do something
}.bind(this));

另一种方法是使用箭头符号(我不是100%肯定):

anArray.forEach((item) => {
  this.myVariable = true; 
  // do something
});