Таблица VueJS — v-model, представленная в виде 2D-массива

#javascript #html #vue.js

#javascript #HTML #vue.js

Вопрос:

У меня есть простая таблица, и данные представлены Array в виде Array или:

 [
["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]
]
 

Я хочу отобразить эту таблицу и v-model каждую ячейку, чтобы data.table она изменялась в любое время, когда пользователь изменяет таблицу.

Я проверял некоторые решения, такие как Hansontable , но я думаю, что это излишне. Есть ли какой-нибудь простой способ сделать это?

Ответ №1:

Вы можете сделать это таким образом.
Просто добавьте 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>