点击父节点,获取该节点的 id,然后渲染成子节点,
目前 id 已获取,子节点数据也请求到了,不知道怎么渲染到该节点下面
看官方介绍有一个 load 参数--加载子树数据的方法,有没有用过的同志来指导一下怎么用
<el-tree :props="props1" :load="loadNode1" node-key="id" ref="tree" highlight-current lazy show-checkbox @node-click="handleNodeClick"> </el-tree>
loadNode(node, resolve){ console.log(node); // if (node.level === 0) { // return resolve([{ name: 'region' }]); // } // if (node.level > 1) return resolve([]); // setTimeout(() => { // const data = []; // // resolve(data); // }, 500); }, getClickchild(id) { alert(id) axios.get('/api/bank/oprtion/oprtionList.do?id='+id) .then(function(res) { console.log(res.data) loadNode }) .catch(function(error) { console.log(error) }) }, handleNodeClick(data) { // this.clickId = data.id console.log(data.id); this.getClickchild(data.id) }}
首先文档的 setTimeout,其实就是异步加载;
还是上代码吧。
我用的 axios,都一样。
例:
loadNode(node, resolve) { if (node.level == 1) { console.log(node.data); //注!把resolve传到你自己的异步中去 this.getUser(node.data.fence, node.data.id, resolve); } // setTimeout(() => { // var data; // if (hasChild) { // data = [ // { // name: "zone" + this.count++ // }, // { // name: "zone" + this.count++ // } // ]; // } else { // data = []; // } // resolve(data); // }, 500); },
然后就是异步
//伪代码 getUser(node.data.fence, node.data.id, resolve){ axios.post().then(res=> { let data = res.data;//改成tree需要的格式 resolve(data);//解决? }) }
以上。
另外,element 的文档确实有点问题啊。需要仔细领悟。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于