动态绑定 iview tree中叶子节点checked
发布于 3 年前 作者 huaer 1706 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

主要需求:

  1. 在勾选tree中某叶子节点使checked发生变化时能够触发事件A,同时单独触发事件A也能改变对应节点checked的值
  2. 由于tree是从后台请求的,而且嵌套的比较深,不希望每次操作通过递归等方式找到变化的节点。而且由于事件A占用的资源比较多,全部重新渲染的方法也不可取。

思路:
在生成tree时对每个节点的checked属性进行defineProperty,绑定到一个对象status中 – {nodeName:nodeChecked} 1. 通过监听status 在手动勾选时能够快速定位到改变的节点 然后触发事件A ;2. 在单独触发事件A后修改status中的值,也能在tree中同步。

注意在全选或全部不全的情况下,由于tree中定义了父节点与子节点的绑定(indeterminate),此时无法通过修改status改变节点勾选状态。目前的解决方法是利用tree 中的check-strictly属性,绑定前使check-strictly为false,修改后再恢复为true

回到顶部