vue.js - 如何对对象数组进行 v-model

标签 vue.js

我有对象数组,这是不定数组,可以在这里推送或拼接东西。我需要使用 vue 将对象的属性绑定(bind)到输入 dom,似乎不起作用。

这是数据

   items : [
     { prop1: 123, prop2: 'test', prop3: 'foo' },
     { prop1: 321, prop2: 'tset', prop3: 'bar' },
   ]

}

试图做

   <li v-for="item in items"> 
      {{ item.prop2 }} 
      <input type="text" v-model="item.prop1">
   </li>

</ul>

最佳答案

你可以使用索引来做到这一点。例如:

   <li v-for="(item, index) of items"> 
      {{ item.prop2 }} 
      <input type="text" v-model="items[index].prop2">
   </li>
我推荐的另一种方法是使用事件,例如 v-on:input或者干脆@input在你输入一个调用方法,在你的 items 中找到你的项目更改您的prop2值(value)。
   <li v-for="(item, index) of items"> 
      {{ item.prop2 }} 
      <input type="text" @input="updateMyProp(index)">
   </li>
   ...
   methods: {
     updateMyProp ($event, index) {
       // your update logic here
       // you can use 'this.items', Object.assign, Vue.set, etc... to update your value
     }
   ...

关于vue.js - 如何对对象数组进行 v-model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58721689/

相关文章:

javascript - Nuxt页面HTML在数据之前加载

javascript - vue js 仅在第一个循环时才更新 div 中的样式

javascript - 表单未居中对齐(垂直居中/居中)

javascript - VueJS 将属性绑定(bind)到 App.vue 中的组件

javascript - 如何对使用 v-if 显示的不同类型问题的列表进行排序?

javascript - 我该如何解决 dev webpack style hot loader js 错误

javascript - 如何在js中实现去抖动

vue.js - 如何在 Vuex 的 getter 函数中调用 getter 函数

javascript - 在使用 vue cli 3 创建的项目中,在哪里可以找到或如何设置 htmlWebpackPlugin.options.title?

javascript - 如何在Vuejs中从子级发送到父级以重置数据列表