我有一个窗口包含许多默认autoload = false的组合。我想等待我的窗口中的所有组合被加载后我会显示像
这样的窗口 var arrCombos = window.query('combo');
Ext.each(arrCombos, function(combo){
combo.getStore().load(); // load
});
WaitForFunction(arrCombos); // wait for loading done
window.show(); // show my window
这是我的WaitForFunction
function WaitForFunction(arrCombos) {
var all = 1;
Ext.each(arrCombos, function(combo){
if (combo.store.isLoading()) {
all = 0;
}
});
if (all == 0){
setTimeout(WaitForFunction(arrCombos), 100);
}
}
但是失败了,那说too much recursion
我该怎么办呢。
答案 0 :(得分:2)
快速而肮脏,但这样的事情应该有效:
var arrCombos = window.query('combo'),
storeCt = 0;
function checkState() {
if(--storeCt == 0)
window.show();
}
Ext.each(arrCombos, function (combo) {
var store = combo.getStore();
storeCt++;
store.on('load', checkState, this, {single: true})
store.load(); // load
});