【问题标题】:bind multidimensional array with vuejs用 vuejs 绑定多维数组
【发布时间】:2018-02-09 04:37:56
【问题描述】:

我正在前端构建一个动态表格,最后我需要知道表格的每个单元格中插入了什么,因为它是可编辑的,所以我在我的 html 上做了这个:

 <table class="table table-responsive">
    <tbody>
      <tr v-for="(row,idx1) in tableRows" :class="{headerRowDefault: checkHeader(idx1)}">
        <td class="table-success" v-for="(col,idx2) in tableCols"><input v-model="items[idx1][idx2]" type="text" class="borderTbl" value="HEY"/></td>
      </tr>
    </tbody>
  </table>

如你们所见。我在输入中设置了一个带有 items[idx1][idx2] 的 v-model,所以我可以将值传递给该行和列,它不是这样工作的,我不知道如何设置它。

这是我的javascript:

export default {
  name: 'app',
  data () {
    return {
      table: {
        rows: 1,
        cols: 1,
        key: 'Table',
        tableStyle: 1,
        caption: '',
        colx: []
      },
      hasHeader: true,
      hasCaption: true,
      insert: 1,
      idx2: 1,
      items: []
    }
  },

计算:{

tableStyles () {
  return this.$store.getters.getTableStyles
},
tableRows () {
  return parseInt(this.table.rows)
},
tableCols () {
  return parseInt(this.table.cols)
}

预期项目数组:

items:[
   ["john","Micheal"]
   ["john","Micheal"]
   ["john","Micheal"]
   ["john","Micheal"]
]

【问题讨论】:

  • 您需要提供html模板以便我们理解问题
  • 嘿嘿我有,奇怪它没有放它
  • 您从哪里获得 tableCols 或 tableRows?
  • 更新了问题

标签: javascript vue.js vuejs2


【解决方案1】:

所以,我认为您的模型指向不正确。

模板:

<tr v-for="(row, idx1) in items">
    <td class="table-success" v-for="(col, idx2) in row">
        <input v-model="items[idx1][idx2]" type="text" />
    </td>
</tr>

脚本:

data () {
  return {
    items:[
     ["john","Micheal"],
     ["john","Micheal"],
     ["john","Micheal"],
     ["john","Micheal"]
    ];
  };
}

这是其中的working fiddle

【讨论】:

  • 你改变了什么?
  • 我刚刚在您的trtd 中更改了v-for。您应该查看项目,并相应地循环。现在您已经在问题中添加了更多内容,我认为在这种情况下不需要计算属性。如果我的回答是正确的,或者您需要不同的东西,请告诉我
  • 我得到一个 vue.esm.js:566 TypeError: Cannot read property '0' of undefined
  • 对我来说没问题。你可以这样检查吗?我用小提琴更新了上面的代码
  • 好吧,当我再添加一行或一列时,它会添加第一列,但我无法动态添加更多行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
  • 2013-04-13
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多