ElementUI中el-tree获取每个节点点击的选中状态
在ElementUI的el-tree
组件中,可以通过监听node-click
事件来获取每个节点的点击事件,但是直接获取勾选状态不如人意。因为el-tree
组件并没有直接提供获取每个节点勾选状态的属性或方法。
解决方案是使用el-tree
的getCheckedNodes
方法,该方法可以获取到所有当前被勾选的节点数组。但是如果需要在每次点击节点的时候获取到该节点的勾选状态,你需要自行维护一个状态映射。
以下是一个基于Vue和ElementUI的解决方案示例:
<template>
<el-tree
:data="data"
show-checkbox
node-key="id"
ref="tree"
@check="handleCheck"
@node-click="handleNodeClick"
>
</el-tree>
</template>
<script>
export default {
data() {
return {
data: [
// ... 树形结构的数据
],
checkedNodes: {}
};
},
methods: {
handleCheck(data, checked, indeterminate) {
this.checkedNodes[data.id] = checked;
},
handleNodeClick(data) {
const checked = this.checkedNodes[data.id] || false;
console.log('节点状态:', checked ? '勾选' : '未勾选');
}
}
};
</script>
在这个示例中,我们使用了handleCheck
方法来监听节点的勾选状态变化,并更新checkedNodes
对象。在handleNodeClick
方法中,我们通过访问checkedNodes
对象来获取当前节点的勾选状态。这样,每次点击节点时,我们都可以通过控制台输出来查看该节点的勾选状态。
评论已关闭