Vue+ElementUI 动态创建Form表单数据绑定问题

项目中使用Vue+ElementUI动态创建表单,传入json串数据,生成对应的form表单,想使用 v-model 进行数据绑定,结果出错。 代码如下:

template部分:

<el-form label-width="120px">
   <el-form-item v-for="(item,index) in formDataJson" :label="item.label">
      <el-input v-if="item.type === 'input'" v-model='item.val'></el-input>
   </el-form-item>
</el-form>
<h2>{{myData.formData.name}}</h2>

js部分:

 var myData = {
    formData: { //存储数据
      name: 'Tom',
    },
  }
  export default {
    name: 'app',
    data() {
      return {
        myData,
        formDataJson: [
          {  //Json串
          type: 'input',
          label: 'name',
          val: myData.formData.name,
        }
        ]
      }
    },
  }

实际显示:图片描述


我的数据 name 需要存储在myData.formData中, val也是对应的 myData.formData.name 但是改变input值时,name还是不变,不知道哪里出错了,应该怎么绑定数据呢,求助

阅读 12.5k
2 个回答

应该换一种形式

export default {
    name: 'app',
    data() {
      return {
        myData,
        formDataJson: [
          {  //Json串
          type: 'input',
          label: 'name',
          val: 'name',
        }
        ]
      }
    },
  }

输入框:

<el-input v-if="item.type === 'input'" v-model='myData.formData[item.val]'></el-input>

试试在mounted或者created生命周期里面为data赋值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题