100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > elementUI el-table 动态添加一行且保证每行数据相互独立 防止v-for影响每行

elementUI el-table 动态添加一行且保证每行数据相互独立 防止v-for影响每行

时间:2021-07-14 07:32:58

相关推荐

elementUI el-table 动态添加一行且保证每行数据相互独立 防止v-for影响每行

缘起

刚接触vue+elementUI开发,项目开发中遇到一个问题要往一个表格中动态添加一行,其中一列要选择多个值插入,问题抽象为下图。

添加一个空行,实现方式

<el-table :data="tableData" border height="300" style="width: 100%;" > table数据绑定在tableData上,tableData是一个空的数组类型,给添加按钮添加一个addData方法,方法如下addData(){this.tableData.push({edit: true, });}

下面是关键,核心就是利用自定义模板和scope.$index和scope.row两个方法

// 拿到某一行的index----------scope.$index

// 拿到某一行的数据-----------scope.row

比如用户输入的名字,如何做到添加一个新行的时候不自动获取到上一行输入的名字,用户姓名数据为通过自定义模板绑定到username,通过scope.row对应到这一行

选择队友时传入当前行的index,添加一个currentRowIndex属性

注意使用this.$set不刷新页面强制更新table数据。data中数据,都是响应式。也就是说,如果操作data中的数据,视图会实时更新;

但在实际开发中,遇到过一个坑:若data中数据类型较为复杂,方法methods中改变对象的属性,视图也就是页面并不会改变

原因是vue监听不到数据类型特别复杂的属性。

再添加一行,与上一行无关,实现行行间数据独立

源码获取链接

clone下来看是否满足你的需求

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。