2017-05-04 54 views
0

我目前正在学习vue.js,并且无法访问方法中的数据。vue.js方法无法访问多行数据对象中的变量

数据被加载并设置为一个全局变量(现在,这可能会改变,但不是问题的一部分,现在我认为)

通过Ajax调用接收到该数据:

数据“: [{ “的itemId”: “58646f066803fa62388b4573”, “色”: “#ffb878”, “名”: “测试1”, “的startDate”: “2017年4月24日”, “工作”: “9.25”},{”的itemId “:” 58646f066803fa62388b4572" , “色”: “#ffb878”, “名”: “TEST2”, “的startDate”: “2017年4月24日”, “工作”: “4.25”},{ “的itemId”: “58646f066803fa62388b4571”,“color”:“#a4bdfc”,“name”:“test3”,“startDate”:“05/01/2017”,“work”:“24.00”}]

这是se吨作为全局(可变数据被设定的功能之外的)配有:

...成功:函数(jsonObj) { 数据[ '项'] = jsonObj.data

....

现在

的VUE部分:

var app = new Vue({ 
    el:'#canvas', 
    data: { 
    items: data['item'] 
    }, 
    methods: { 
    moveItem: function(){ 
     console.log("new date: "+this.startDate); 
    } 
    } 
}) 

的HTML:

<div v-for="row in items" class="entirerow" v-bind:id="'row'+row.itemId"> 
            <div class="itemrow">{{ row.name }}</div> 
            <div class="itemrow"><input type="text" v-model="row.startDate" @change="moveItem"></div> 
            <div class="itemrowlast">{{ row.work }}</div> 

          </div> 

这很好地显示了3行,每行都有正确的数据。到现在为止还挺好。但现在如果我改变了输入值的方法moveItem被触发,但在console.log中指出“new date:undefined”

我试过console.log(“new date:”+ this.items。 startDate),但没有雪茄,然后看起来该方法不知道哪一行被处理。

如何从循环中的某一行访问方法中的正确数据?

谢谢!

回答

0

你指的数据对象的方法(this.startDate)没有项目

moveItem: function(){ 
    console.log("new date: "+this.startDate); 
} 

你可以改变这样的

模板

@change="moveItem(row)" 

代码脚本

moveItem: function(row){ 
    console.log("new date: " + row.startDate); 
} 
+0

thx ...就是这样 – Martin