VUE项目之table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)

一、问题

用elementUi横着增加一行数据没毛病,可以操作
添加一列,这新增的这一列, 第一次去赋值的时候值是改了, 但没生效
点击下一行时 值就变过来

在这里插入图片描述

二、原因

横向添加 是复制上面的某一条数据来的,因为data里面有这些属性的定义,所以横向添加没问题

而纵向添加的数据,因为没有事先在 el-select v-modle="" 里面定义好字段,定义好的option是通过v-for出来的(option是写死的就不会有这个问题),就会出现选择后,select元素上无法展示,但是其实数值已经绑定上去了的后果,即:

v-model绑定数据不实时更新

三、解决

使用 vm.$set 实例方法
// eg:
this.$set(this.someObject,'b',2)

项目code

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
你可以在VUE表格动态添加一列数据,同时设置该列为只读,以保证新增数据不可编辑。以下是一个示例代码,供你参考: ``` <template> <div> <el-table :data="tableData"> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> <el-table-column label="New Column"> <template slot-scope="scope"> {{ scope.row.newData }} </template> </el-table-column> </el-table> </div> </template> <script> export default { data() { return { tableData: [ { name: 'John', age: 25, newData: 'data1' }, { name: 'Jane', age: 30, newData: 'data2' }, { name: 'Bob', age: 20, newData: 'data3' } ] } }, mounted() { // 设置新增列为只读 this.$nextTick(() => { const newColumn = document.querySelectorAll('.el-table__body-wrapper .cell')[2] newColumn.setAttribute('contenteditable', 'false') }) } } </script> ``` 在以上代码中,我们通过`el-table-column`组件来定义表格的列,其中`prop`属性用于指定列所对应的数据字段。我们定义了一个名为`New Column`的新列,并通过`slot-scope`来访问该列所对应的数据。我们还通过`mounted()`钩子函数来将新增的列设置为只读,以防止用户编辑该列数据。 当你往`tableData`数组中添加新的数据时,只需要在其中添加一个名为`newData`的属性即可,该属性的值可以是任意值。例如,你可以像下面这样来添加一条新的数据: ``` this.tableData.push({ name: 'Tom', age: 28, newData: 'data4' }) ``` 这样,当你再次渲染表格时,新增数据就会显示在新的一列中,并且该列数据不可编辑

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值