在ivew的form中取消勾选checkbox时删除行的问题

movingboy2 2020-07-14 07:46:29
项目里有个表格,用iview做的,这个表格第1列是一个checkbox。我们想实现一个功能:用户取消勾选一条记录的checkbox,程序自动删除这一行。这个实现比较简单,但有个问题是下一行原本是已勾选,当前行被删除后下一行的位置上移,然后会显示为未勾选的。代码如下:

<input type='checkbox' v-model='item.isChecked' @change='switchBillSelected(item)'></input>

switchBillSelected(item) {
if (!item.isChecked) {
for (let i=0; i<this.bills.length; i++) {
if (this.bills[i].id == item.id) {
this.bills.splice(i, 1)
break;
}
}
}
}


为了解决这个问题,我把上面的代码改了一下,重新绑定数据,强制刷新下表格:

<input type='checkbox' v-model='item.isChecked' @change='switchBillSelected(item)'></input>

switchBillSelected(item) {
if (!item.isChecked) {
for (let i=0; i<this.bills.length; i++) {
if (this.bills[i].id == item.id) {
this.bills.splice(i, 1)
break;
}
}

// Keep an alias of this.bills
let alias = this.bills;

// Re-bind this.bills to refresh the check status of visible rows
this.bills = [];
setTimeout((bills) => {
this.bills= bills;
}, 500, alias)
}
}


这个确实有用,但是强制刷新整个表格的办法不那么优雅,一是表格部分会闪烁一下,二是这其实是把问题绕过去了。有没有更好的办法呢?
...全文
450 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jio可 2020-07-14
  • 打赏
  • 举报
回复
iview表格?
源码直接下载地址: https://pan.quark.cn/s/0c43ed5159df 本资源为HCDA认证培训教程,旨在面向准备参加HCDA考试的学员,或希望掌握TCP/IP基础、路由、交换技术、广域网、以太网技术基本原理以及华为通用路由平台VRP上实现的相关内容。具体涵盖的模块包括:Module 1-网络互联基础、Module 2-路由和路由协议基础与实现、Module 3-以太网交换技术基础与实现、Module 4-广域网技术基本原理与实现、Module 5-网络安全基础、Module 6-华为数通产品概述 ### 华为-NAT技术详解 #### 一、概述 NAT(Network Address Translation,网络地址转换)是一种在专用网络内部使用私有IP地址的情况下,使这些设备能够通过公有IP地址进行外部通信的技术手段。NAT技术在多种网络环境中得到广泛应用,特别是在企业网络中发挥着关键性作用。作为HCDA认证培训教程的一部分,本文档将系统性地阐述NAT的基础理论及其实现方法,并深入探讨在华为VRP平台上的具体应用场景。 #### 二、NAT处理流程 NAT处理流程主要包含两种类型:基于源IP地址和基于目的IP地址的处理模式。 ##### 1. 基于源IP地址的NAT处理 **1.1 一对一NO-PAT** 一对一NO-PAT即非端口地址转换(No-Port Address Translation),在这种模式下,一个私有IP地址对应一个公有IP地址,不涉及端口号的转换。当配置了NAT no-pat时,华为设备会为已配置的多通道协议产生的实际流量数据建立server-map表项。这种方式适用于需要固定公网IP的服务器等场景。 **1.2 多对一...

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧