Привязка v-модели в динамической таблице с неизвестным ключом от объекта

#vue.js #vuejs3

Вопрос:

Привязка v-модели в динамической таблице с неизвестным ключом от объекта

Привет!

Я создаю динамическую таблицу из динамичного объекта. (Что означает, что я не знаю, какие ключи будут в этом объекте.

Это прекрасно работает. Хотя теперь я хочу связать ключи в объекте в поле ввода. Это не работает. Он отобразит правильное значение ключа, но не привязывает его обратно к объекту данных.

 <table
          v-if="Object.keys(this.userInfo).length > 1"
        >
          <thead>
            <tr>
              <th>Type</th>
              <th>Value</th>
              <th>Edit</th>
            </tr>
          </thead>
          <tr v-for="(value, name) in userInfo">
            <th>{{ name }}</th>
            <th>{{value}}</th>
            <th>
              <input v-model="value" />
            </th>
          </tr>
        </table>
 

Я пытался измениться

 <input v-model="value" />
 

Для:

 <input v-model="userInfo.name" />
 

Хотя это просто добавит новый ключ в объект под названием «имя».

Как я могу привязать поле ввода обратно в объект, не зная ключей?

Ответ №1:

Вы можете использовать такие значения динамических ключей, как:

     <table v-if="Object.keys(userInfo).length > 1">
      <thead>
        <tr>
          <th>Type</th>
          <th>Value</th>
          <th>Edit</th>
        </tr>
      </thead>
      <tr v-for="key in Object.keys(userInfo)" :key="key">
        <th>{{ key }}</th>
        <th>{{ userInfo[key] }}</th>
        <th>
          <input v-model="userInfo[key]" />
        </th>
      </tr>
    </table>