el-tree 带有复选框的如何选中子节点获取其父节点数据 ?element-ui的组件库中没有找到,复选框选中获取上级的方法啊?有获取方法吗
- 清除 element el-tree 已选中的选项,
光是清除 default-checked-keys 值是没用的
- element 的 el-tree 组件是采用赋值的方式改变是否勾选的,所以你应该使用组件中提供的
this.$refs.tree.setCheckedKeys([]);
- 参考文章@Ellie艾藜
this.$nextTick(() => {
this.$refs.newTopRightsTree.setCheckedKeys([])
});
针对问题:如何在带有复选框的el-tree组件中选中子节点并获取其对应的父节点数据?
在使用element-ui的el-tree组件时,可以通过勾选复选框来选中子节点,同时可以获取该节点的所有数据。但是,要获取其对应的父节点数据,需要自己编写代码实现。以下是一种实现方案:
handleCheckChange(checkedNodes) { // 获取el-tree组件实例 const tree = this.$refs.tree; // 遍历每一个勾选的节点 checkedNodes.forEach(node => { // 获取该节点的所有父节点 const parents = this.getParentNodes(tree, node); // 将父节点数据和子节点数据合并 const data = { ...node.data, parents: parents.map(parent => parent.data) }; // 输出选中节点的数据 console.log(data); }); }, // 递归获取节点的所有父节点 getParentNodes(tree, node) { const parents = []; let parent = tree.getParentNode(node); while (parent) { parents.unshift(parent); parent = tree.getParentNode(parent); } return parents; }
上述代码中,handleCheckChange函数是el-tree组件的复选框勾选/取消事件处理函数,通过checkedNodes参数获取当前被勾选的节点数据。 使用getParentNodes函数,传入el-tree实例和当前节点,就可以递归遍历所有父节点,得到父节点的数据。 最后将父节点数据和子节点数据合并,并输出选中节点的数据。