动态绑定 iview tree中叶子节点checked
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利
主要需求:
- 在勾选tree中某叶子节点使checked发生变化时能够触发事件A,同时单独触发事件A也能改变对应节点checked的值
- 由于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