Vuejs2 vue.js方法可以';t从具有多行的数据对象访问变量

Vuejs2 vue.js方法可以';t从具有多行的数据对象访问变量,vuejs2,Vuejs2,我目前正在学习vue.js,在访问方法中的数据时遇到困难 数据被加载并设置为全局变量(目前,这可能会改变,但我认为这不是问题的一部分) 通过ajax调用接收此数据: 数据:“[{”itemId:“58646f066803fa62388b4573”,“颜色:“#ffb878”,“名称:”“test1”,“startDate:“04/24/2017”,“工作:”“9.25”},{”itemId:“58646f066803fa62388b4572”,“颜色:“#ffb878”,“名称:”“test2”

我目前正在学习vue.js,在访问方法中的数据时遇到困难

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

通过ajax调用接收此数据:

数据:“[{”itemId:“58646f066803fa62388b4573”,“颜色:“#ffb878”,“名称:”“test1”,“startDate:“04/24/2017”,“工作:”“9.25”},{”itemId:“58646f066803fa62388b4572”,“颜色:“#ffb878”,“名称:”“test2”,“startDate:“04/24/2017”,“工作:”“4.25”;“{”itemId:“58646f066803fa62388b4571”,“颜色:”“名称:”“test2”,“startDate:“2017”;“4.25”;“工作:”

设置为全局变量(变量数据设置在函数外部),具有:

…成功:函数(jsonObj) { 数据['item']=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>

{{row.name}
{{row.work}}
这很好地显示了3行,每行中都有正确的数据。到目前为止还不错。但是现在如果我在输入值中更改了一些内容,就会触发方法moveItem,但在console.log中会声明“newdate:undefined”

我也尝试过console.log(“newdate:+this.items.startDate”),但没有雪茄,然后方法似乎不知道处理了哪一行

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


谢谢!

您在方法(this.startDate)中引用的数据对象不是项

moveItem: function(){
  console.log("new date: "+this.startDate);
}
您可以像这样更改代码

模板

@change="moveItem(row)"
脚本

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