不确定我在这里做错了什么,但让我设置方案。
一开始,商店(resultsStore)正在填充数据并通过函数调用显示。
现在,需要通过另一个商店获取更多数据的中间步骤,并将两个集合传递给原始函数。
我尝试了下面的许多变体,但这两个数据集似乎没有传递给updateLeftPanel函数,第一个是好的,第二个是“undefined”。我遗失了哪些明显的东西?
resultsStore.load({
params: {
'certid' : certId
},
callback: function(record,operation,success){
updateRightPanel(record[0].data); // code not shown,works fine
//updateLeftPanel(record[0].data); // original call
loadCriteriaStore(record[0].data); // new call
}
});
function loadCriteriaStore(data)
{
criteriaStore.load({
params: {
'edition' : data['Edition']
},
callback: function(record,operation,success,data){
updateLeftPanel(data,record[0].data);
// orig data first, new dataset second
}
});
}
function updateLeftPanel(data, dataa){
// code here
dataa object still unpopulated
}
答案 0 :(得分:1)
在loadCriteriaStore
函数的回调中,您将分配4个参数。我假设它只通过3。
因此,在该回调中,包含您数据的data
被新的“本地”data
覆盖,即undefined
。
function loadCriteriaStore(data)
{
criteriaStore.load({
params: {
'edition' : data['Edition']
},
// Get rid of the ",data" here
callback: function(record,operation,success){
// the `data` param will be the value passed to `loadCriteriaStore`
updateLeftPanel(data,record[0].data);
// orig data first, new dataset second
}
});
}