添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

当在使用v-for循环生成一个带表单的标签块,表单需要进行双向绑定时

如果直接在items数组中的对象属性VM赋值给v-model实现数据的双向绑定

v-model="obj.name" //这样的效果

我一开时的做法是这样的(错误):

<input v-for="(item,index) in items" :key="index" :type="item.type" :placeholder="item.placeholder" v-model="item.VM" </div>
export default {
  data() {
    return {
        items:[
            {type="text", VM: "obj.name", placeholder: "请输入用户名",}, //VM属性名对应的属性值 为需要动态引入obj对象的name属性
             {type="password", VM: "obj.password", placeholder: "请输入密码",},
        obj:{
            name:'这个是最终要绑定的属性',
            password: '',

实际上应该这样做:

  • 如果你绑定的变量名本来不是对象的属性时,需要将变成对象的属性名
<input v-for="(item,index) in items" :key="index" :type="item.type" :placeholder="item.placeholder" v-model="obj[item.VM]" </div>

原理比较简单,就是在JS中对象,获取属性值时使用的方法不同造成的结果,如果是使用对象.属性名的方式来获取的话,属性名是不能为变量的;但是使用对象[属性名]这种方式时,属性名就可以为变量。

最近在学习vue技术,开发表格的时候,想把表格做成组件,那查询条件就需要动态生成,这就遇到一个问题,vue怎么动态给v-model变量值。 UI框架使用的是iview 页面渲染(子组件) <div class="ivu-card-body"> <Form ref="formInline" v-model="formInline" inline> <Row type="flex" justify="end" align="middle" <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="../js/vue-2.4.0 .js"></script> <title>Documen &lt;input v-model="personName"&gt; &lt;input v-bind:value="personName" v-on:input="personName = $event.target.value"&gt; 但在遇到input[type="checkbox"]等非输入内容的input时,绑定的内容又不太一样,具体参见官网
Vuev-model使用Vue,我们有时候需要对数据进行双向绑定,所谓的双向绑定的意思就是在Vue的data定义的变量的值,当改变data变量的值时,通过Mustache语法获取的值也发生改变,当童Mustache获取的值发生改变时,data的值也随之改变 v-model的基本使用: 示例代码:将data变量与输入框的值进行双向绑定: <div id="app"> <input type="text" v-model="message">
遇到一个问题,就是如果变量名是text_right,的时候更改v-model的值,则text_right不会更新,如果改成textRight就会更新,目前还不知道原因,先记录下来 转载于:https://www.cnblogs.com/mrzhu/p/7462928.html...