Vue:在动态二维数组中存储动态输入数

时间:2017-11-18 15:31:58

标签: javascript multidimensional-array vue.js vuejs2 vuetify.js

我从后端获得了一个名为response的多维数组,我尝试做的是创建几个文本字段,具体取决于我在响应中的元素数量(每个响应元素)有一些内部元素,如response [0] [0]和response [0] [1],每个元素都是一个对象,包含每个文本字段的标题,名称等。例如response[0][0].name获取响应名称[0] [0]元素)。 我想要的是将这些文本字段绑定到另一个名为data的二维数组,这样我就可以获得它们的价值并按我的意愿使用它们。 这是代码:

 <v-layout  row wrap v-for="(row,i) in response" :key = "i">
      <v-layout  v-for="(col,j) in row" :key = "j">
         <v-text-field
          :name = "col.name"
          :label = "col.caption"
          v-model="data[i][j]"//I think somehow i should create data[i][j] element 
                               first,like data[i] =[] 
          >
         </v-text-field>
      </v-layout>
  </v-layout>

脚本是:

data () {
 return {
  data: [],
  response: []
 }
},
 mounted: function () {
   //get response from back-end
 }

我是Vue和javascript的新手,任何帮助都会很感激...... 请评论如果不清楚。

1 个答案:

答案 0 :(得分:0)

应该有效...你能澄清问题是什么吗?是生成响应数组的问题?

new Vue({
  el: '#app',
  data: {
    data: [
      [{
          name: 'name00',
          caption: 'caption00'
        },
        {
          name: 'name01',
          caption: 'caption01'
        }
      ],
      [{
          name: 'name10',
          caption: 'caption10'
        },
        {
          name: 'name11',
          caption: 'caption11'
        }
      ]
    ],
    response: [
      ['',''],
      ['','']
    ]
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.5/vue.min.js"></script>
<div id="app">
  <div v-for="(i, ii) in data" :key="ii">
    <div v-for="(j, jj) in i" :key="jj">
      {{j.name}}
      
      <input v-model="response[ii][jj]" />
    </div>
  </div>
  <pre>{{response}}</pre>
</div>