在Ext.tree.TreePanel中,当我们加载树时,不会检查是否所有树节点都已完全加载。
我们所做的是,我们递归地进行异步调用,并让节点根据扩展属性的节点扩展为true。我们怎样才能找到所有的asyc。调用已完成并且treePanel是完整加载的吗?
背后的想法是当treepanel的节点完全加载时,我们必须启用一个按钮,表示该树可供最终用户进行进一步操作。
答案 0 :(得分:0)
Ext.Ajax.request(...)返回一个对象,如果该对象包含xhr属性,则请求未完成。
var req = Ext.Ajax.request(..);
if(!req.xhr)
//request is finished
else
// request is not finished
虽然我建议每次请求都返回节点的总数。所以我会像这样返回一个json:
{
data: [...], // treenodes
totalCount: 100
}
现在,如果您的树库已包含所有节点,则可以检入每个请求成功函数。
答案 1 :(得分:0)
感谢您输入@JuHwon。但是,在这种情况下,你并不适合。因为Ajax调用是开箱即用的,正如我所提到的,树触发器基于属性调用(可能是isSelectable = true,据我现在可以记得)。因此,为了实现这个用例,我使用了setTimeOut和clearTimeOut方法来动态推送2000 ms的延迟。我没有找到更接近它。