Vue.js中的数据范围

时间:2016-09-26 15:56:51

标签: vue.js

我是vue.js的新手我正在使用下面的代码并遇到一些问题。我试图使用elems=document.getElementsByClassName("class"); for(i=0;i<elems.length;i++){ elems[i].click(); } 在方法对象中的方法myFunction内的for循环中访问数据myData但是它不可访问/超出范围

this.myData

2 个答案:

答案 0 :(得分:2)

你是对的,这是一个范围问题。您的then()函数具有不同的范围。您可以在函数末尾.bind(this)this传递给函数。

Vue.http.get('/getdata').then((response) => {
    for (var i = 0; i < response.data.info.length; i++) {
        this.myData.push(response.data.info[i].address);
    }
}.bind(this));

您经常看到的另一种方法是别名this

var self = this;

Vue.http.get('/getdata').then((response) => {
    for (var i = 0; i < response.data.info.length; i++) {
        self.myData.push(response.data.info[i].address);
    }
});

答案 1 :(得分:0)

而不是使用&#39; ready&#39;使用vue 2.0 https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram

的新功能

您可以使用mounted () {this.myFunction ()}

执行该功能时,您已经可以看到组件的data ()