elementUI表格多选框this.$refs.xxx.toggleRowSelection无效问题
this.$refs.xxx.toggleRowSelection无效
在elementUI官方实例中,multipleSelection代表选中的值,toggleRowSelection(row,selection)方法用于原先已选的值传入进行勾选,row传递被勾选行的数据,selected设置是否选中。
需求是每次打开弹窗都会重新获取表格数据,并且要选中对应的数据,但直接使用那个方法并没有效果,因为表格中的数据还没有请求出来。
解决
第一步获取数据后在需要进行勾选操作的外面套一个$nextTick(并没完全实现)
this.$nextTick(() => {
checkedList.forEach((row) => {
this.$refs.multipleTable.toggleRowSelection(row,true);
});
});
$nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据之后使用 $nextTick,则可以在回调中获取更新后的 DOM。
但这样任然无法正常显示
解决:
这里通过从所有列表tableData中找到需要选中的项来帮助选中,直接使用选中列表来设置会出错
最终代码
this.$nextTick(() => {
checkedLi.forEach((row) => {
this.$refs.multipleTable.toggleRowSelection(
this.list.find((item) => {
return row.FIELD_CODE == item.FIELD_CODE;
}),
true
);
});
});
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Vue + Element-ui的下拉框el-select获取额外参数详解
这篇文章主要介绍了Vue + Element-ui的下拉框el-select获取额外参数详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-08-08
vue项目使用md5加密、crypto-js加密、国密sm3及国密sm4的方法
密码或者其他比较重要东西假如使用明文传输中是很危险的,所以就需要前端一些加密协议,对密码、手机号、身份证号等信息进行保护,下面这篇文章主要给大家介绍了关于vue项目中使用md5加密、crypto-js加密、国密sm3及国密sm4的相关资料,需要的朋友可以参考下2022-12-12
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
这篇文章主要介绍了vue-video-player,通过自定义按钮组件实现全屏切换效果,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-08-08


最新评论