vue.js - 将 v-model 添加到嵌套 v-for 循环中的输入

标签 vue.js vuejs2 v-for

假设我有这样的组件:

<template>
  <div>
    <div v-for="n in 2" :key="n">
      <div v-for="i in 2" :key="i">
        <input type="number" v-model="foo[n][i]">
      </div>
    </div>
    <pre>{{ foo }} </pre>
  </div>
</template>

此渲染 4 个输入。现在,当我在此输入中输入一些内容(例如 1 到 4)时,我希望 foo 变为:

[
    [1,2],
    [3,4]
]

相反,我有一个错误

TypeError: Cannot read property '1' of undefined

最佳答案

您的错误是由于 ni 索引在 v-for 中从 1 开始

此外,对于更通用的方法,您可以根据created生命周期中的维度生成一个数组。

Vue.config.devtools = false;
Vue.config.productionTip = false;

var app = new Vue({
  el: '#app',
  data: {
    x: 2,
    y: 2,
    array: []
  },
  created() {
    for (let i = 0; i < this.y; i++) {
      let row = [];
      for (let j = 0; j < this.x; j++) {
        row.push(0);
      }
      this.array.push(row);
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <div v-for="n in y" :key="n" style="display:flex">
    <div v-for="i in x" :key="i">
      <input type="number" v-model.number="array[n - 1][i - 1]">
    </div>
  </div>
  {{array}}
</div>

关于vue.js - 将 v-model 添加到嵌套 v-for 循环中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58692874/

相关文章:

javascript - 如何在数据Vue.js中检查本地存储

vue.js - VueJS 和动态标题

javascript - Vue js 加载器覆盖全局 css

javascript - 来自对象键和嵌套数组的 Vue.js v-for 循环

vue.js - 组件中的 $on 监听器可以监听来自 mixin 的 $emit 吗?

vue.js - ./node_modules/node-pty/build/Release/pty.node 模块解析失败 : Unexpected character ''

javascript - VueJS 按特定属性对对象数组进行排序/排序

javascript - Vue.js 如何对打印的值求和

javascript - 在 Vue Js 中的表格中创建奇数和偶数单元格时出现问题

javascript - 在 Vue.JS 中循环以迭代一些项目并将它们包装在一个元素中