bio_relex
bio_relex copied to clipboard
如何清除选项框的选择状态?
如何清除选项框的选择状态? 比如有没有方法可以全部清除勾选状态?
因为是树,如果清除根节点的选择状态,那么所有后代节点都会清除
对的,因为我的业务是在弹出框里面显示权限树,第一次操作之后,关闭了弹出框,但是第二次打开的时候,需要清空所有的选择状态,请问怎么清空呢?
v-model
绑定空数组即可
v-model绑定空数组即可 没有效果。。。能不能加我一下QQ 15439509 帮我看一下问题在哪?
你必须确认第二次打开弹出框的时候数组已经清空
确定了。第二次打开之前我设置了ids=[]
这或许是v2.3之后的一个问题,因为2.3之后没有watch ids,导致双向绑定失效
能修复这个问题吗?找了好久就您的这个Tree比较好用,希望尽快
目前初始化的时候绑定是有效的,但后续操作绑定是单向的,我会尽快修复这个问题
多谢了,我把2.23的watch那段代码复制到2.3的源码中就行了。
另外还有个BUG,设置ids=[]后,如果第一个父节点是半选状态,是没有重置成功的
不可直接复制v2.2版本的watch代码,你可加入这段代码到 Item.vue
里的 watch 块里
ids (val) {
if (val.indexOf(this.model.id) !== -1) {
this.addChecked()
this.$emit('child-change', true)
} else {
this.delChecked()
this.$emit('child-change', false)
}
}
对于树形选择框,逻辑上应该是初始化的时候绑定选择状态,而后续操作仅作为单向绑定即可,因为如果进行了双向绑定难免会引起程序混乱,因为这牵涉到半选、目录勾选状态等。 例如, 当我们勾选一个目录的时候,它的所有后代也一起被勾选了,那么问题来了 如果我们在 ids 里手动添加了一个目录的id, 那么它的所有后代应该全部选择才符合逻辑,事实上当我们添加这个 id 的时候往往没有考虑到这点,如果手动修改难免会引起程序错误。这也是树形选择框面临的一个尴尬问题。 基于此,我决定暂不修复这个问题,等有了好的思路再行修复,如果想重新绑定 ids 你必须销毁此组件重新初始化。