如何一次显示所有回调结果(格式化)
How to display all callback results (formatted) at once
我有一个回调,它会在数据准备就绪后发送数据(例如,在我单击左键后发送一个包含 5 个名称的数组)。我想将所有发送的数据显示到 Ext.Panel,但它只显示在 Ext.Panel 数组的最后一个对象中(例如,数组从 1 到 5,而 1 到 4 确实出现很快,最后只剩下 5 个)。此外,我想按行显示这些数据,而不是像数组一样。我怎样才能做到这一点?
代码:
trigger: function(e) {
/* define some here */
/*...*/
$.ajax({
/*...*/
success: function(result){
/*...*/
var temp1 = 'name1';
callback(temp1);
}
});
$.ajax({
/*...*/
success: function(result){
/*...*/
var temp2 = 'name2';
callback(temp2);
}
});
function callback(result){
console.log('all results but they appear one by one here like: ' + result);
var store = new Ext.Panel({
html: result,
border: false,
bodyStyle: {
'padding': '6px'
},
autoHeight: true
});
};
既然你知道你做了很多 ajax 请求 (5),我建议你创建一个全局变量,它会记住所有回调的结果,并在它们全部加载后插入到你的面板中:
var myData = [];
function callback(result){
myData.push(result);
if (myData.length == 5) {
var store = new Ext.Panel({
html: myDataFormated , // Here add some style by transforming myData array
border: false,
bodyStyle: {
'padding': '6px'
},
autoHeight: true
});
}
};
我有一个回调,它会在数据准备就绪后发送数据(例如,在我单击左键后发送一个包含 5 个名称的数组)。我想将所有发送的数据显示到 Ext.Panel,但它只显示在 Ext.Panel 数组的最后一个对象中(例如,数组从 1 到 5,而 1 到 4 确实出现很快,最后只剩下 5 个)。此外,我想按行显示这些数据,而不是像数组一样。我怎样才能做到这一点?
代码:
trigger: function(e) {
/* define some here */
/*...*/
$.ajax({
/*...*/
success: function(result){
/*...*/
var temp1 = 'name1';
callback(temp1);
}
});
$.ajax({
/*...*/
success: function(result){
/*...*/
var temp2 = 'name2';
callback(temp2);
}
});
function callback(result){
console.log('all results but they appear one by one here like: ' + result);
var store = new Ext.Panel({
html: result,
border: false,
bodyStyle: {
'padding': '6px'
},
autoHeight: true
});
};
既然你知道你做了很多 ajax 请求 (5),我建议你创建一个全局变量,它会记住所有回调的结果,并在它们全部加载后插入到你的面板中:
var myData = [];
function callback(result){
myData.push(result);
if (myData.length == 5) {
var store = new Ext.Panel({
html: myDataFormated , // Here add some style by transforming myData array
border: false,
bodyStyle: {
'padding': '6px'
},
autoHeight: true
});
}
};