"问题描述 获取[链接]当前节点,使用handler 方法无法获取到当前点击的节点 期待结果 获取当前点击节点 复现地址 [链接]"
获取q-tree当前节点,使用handler 方法无法获取到当前点击的节点
handler
获取当前点击节点
codepen demo 地址
codepen 解决地址
解决方法 修改数据结构
参考链接
感谢楼主的分享自己的问题以及解决方法。问题质量较高,有问题描述,期待结果,和完整问题代码。大家可以参考这种方式提出自己的问题,方便大家查看并解决问题。q-tree 获取当前节点是一个经常用的功能,将此帖置顶加精,对楼主以示鼓励,也方便大家查看。希望大家多多分享,促进社区发展。
由于数据是后端返回的,直接返回handler:"(node)=>this.handleClick(node)" 则 value 会被转义 `
handler:"(node)=>this.handleClick(node)"
const vm = this
所以最理想的解决方式是由前端修改
this
handler:(node)=>vm.handleClick(node)
methods: { getTree() { this.$axios .get('/tree') .then((res) => { const results = res.results let vm = this function deepClone(originObject) { var deepObject = Array.isArray(originObject) ? [] : {} if (originObject && typeof (originObject) === 'object') { for (var key in originObject) { originObject['handler'] = (node) => { vm.handleClick(node) } // 如果子属性为引用数据类型,递归复制 if (originObject.hasOwnProperty(key)) { if (originObject[key] && typeof originObject[key] === 'object') { deepObject[key] = deepClone(originObject[key]) } else { deepObject[key] = originObject[key] } } } } return deepObject } this.devicesData = deepClone(results) }) .catch((e) => { this.$q.notify({ message: '接口请求出错', position: 'top', timeout: 1500, color: '#fff', }) }) }, handleClick(node) { console.log(JSON.stringify(node),"已经拿到当前node节点") }, },
已解决
codepen 解决地址
解决方法 修改数据结构
参考链接
感谢楼主的分享自己的问题以及解决方法。问题质量较高,有问题描述,期待结果,和完整问题代码。大家可以参考这种方式提出自己的问题,方便大家查看并解决问题。q-tree 获取当前节点是一个经常用的功能,将此帖置顶加精,对楼主以示鼓励,也方便大家查看。希望大家多多分享,促进社区发展。
强烈建议解决方案
由于数据是后端返回的,直接返回
handler:"(node)=>this.handleClick(node)"
则 value 会被转义 `const vm = this
所以最理想的解决方式是由前端修改
this
handler:(node)=>vm.handleClick(node)