背景:后台管理系统,经常需要在一个页面A点击一个按钮,弹出一个弹框,在弹框里面可以勾选想要添加的数据到页面A里展示,如
点击添加按钮,弹框,全选,确定:
把数据添加到A页面,如下:
当我们点击删除时,可以把数据删掉一条或多条。我们需要实现的是 : 再次打开弹框时,弹框里把对应的已删数据,不勾选,实时对应:
在elementui官网里找了好久才找到方法: toggleRowSelection,因为之前没用过这个方法
解决方法:
在弹框打开的时候进行改方法操作:
循环列表数据,把每一行设置对应选中与否即可。
dialogOpen() {
this.$nextTick(() => {
this.list.forEach((item, index) => { //list是弹框所有的列表数据
this.$refs.myTable.toggleRowSelection( //myTable是 el-dialog的ref
this.list[index],
this.selectedId.includes(item.id) //selectedId是选中的所有id 数组。includes es6语法,如果包含当前行就返回true,否则false。
);
});
});
}