简体   繁体   English

VueJS - 表示为 2D 数组的 v-model 表

[英]VueJS - v-model table represented as 2D Array

I have a simple table and the data are represented as an Array or Array s:我有一个简单的表,数据表示为ArrayArray s:

[
["January",null,null,null],
["February",null,null,null],
["March",null,null,null],
["April",null,null,null],
["May",null,null,null],
["June",null,null,null],
["July",null,null,null],
["August",null,null,null],
["September",null,null,null],
["October",null,null,null],
["November",null,null,null],
["December",null,null,null]
]

I want to display this table and v-model every cell so the data.table is changed anytime a user change the table.我想在每个单元格中显示此表和v-model ,以便在用户更改表时随时更改data.table

I was checking for some solutions like Hansontable but I think it's overkill.我正在检查一些像Hansontable这样的解决方案,但我认为这太过分了。 Is there some simple way to do that?有没有一些简单的方法可以做到这一点?

You can make it in this way.你可以这样做。
Just add v-model directive when generating a table.只需在生成表时添加v-model指令。

<table style="width: 100%">
    <tr>
      <th>month</th>
      <th>some</th>
      <th>some</th>
      <th>some</th>
    </tr>
    <template v-for="(el, i) in array">
      <tr :key="i">
        <td>
          <input type="text" placeholder="input text" v-model="el[0]" />
        </td>
        <td>
          <input type="text" placeholder="input text" v-model="el[1]" />
        </td>
        <td>
          <input type="text" placeholder="input text" v-model="el[2]" />
        </td>
        <td>
          <input type="text" placeholder="input text" v-model="el[3]" />
        </td>
      </tr>
    </template>

    <!-- rows for test -->
    <template v-for="(el, i) in array">
      <tr :key="i">
        <td>
          {{ el[0] }}
        </td>
        <td>
          {{ el[1] }}
        </td>
        <td>
          {{ el[2] }}
        </td>
        <td>
          {{ el[3] }}
        </td>
      </tr>
    </template>
  </table>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM