Jquery CallBack参数

时间:2013-02-05 15:45:08

标签: javascript jquery extjs

不确定我在这里做错了什么,但让我设置方案。

一开始,商店(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
 }

1 个答案:

答案 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
        }


    });

}