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参数

返回开发者社区