2019-10-31 18:33 | 题主 | ||||||||
|
[分享] tree 连续两次加载数据显示的解决方案 背景:我们需要显示用户上一次选中的测试项目的目录树。 问题:每次显示的时候,显示第一级目录;但如果把根目录 收起来,再expand一下,显示。 原因分析以及解决方案: 0) 根本原因是 tree的加载是异步的 1)我们设置了tree root 的 expanded = true的时候,会导致界面初始化的时候,tree.store会自动被执行; 2)启动时候,我们从数据读到上一次选中的测试项目的时候,将project_id 传进去正式加载目录树。 因为1)和2)的两次加载是异步的,我们发现在1) success之前,2)已经发起了load操作. 解决方案: 2)的加载必须等待 1)的空加载success返回。 其中 app.wait 初始化为 true, 并且在 tree1.store.success() 里面 直接赋值为 false; 这样 只有 初始化存在1)空加载的时候,才会进入超时等待的过程,其他时候,立刻加载。 如果你有更好的解决方案,欢迎留言交流。 |
2019-10-31 18:35 | #1 | ||||||||
|
纠正: app.projectId = projectId; 并且在 tree1.store.beforeload中 operation.params.project_id = app.projectId; |
2019-10-31 19:09 | #2 | ||||||||
|
其实这个不是问题,如果显式使用load加载节点须指定node参数 |