Ext.Msg。序列确认收集数据

时间:2012-07-09 07:04:23

标签: extjs confirm

例如我有5条记录。我应该要求用户确认下一步操作,

     var data = [];
     Ext.Msg.confirm('Confirm', String.format('Are you sure about {0} record?',
                    product['id']),
                    function (btn){
                        if(btn=='yes')  data.push(product['id']);

                    }
    });

 // here I want to get collected data
console.log(data); // gives [] - empty

1 个答案:

答案 0 :(得分:1)

ExtJs消息框是asycronous,因此您添加产品的代码是正确的,但您要收集的部分是错误的。在确认之前执行该部分。所以你应该添加一个函数来收集数据,并从消息框的回调方法中调用它确认:

var data = [];
function confirm(id){
     Ext.Msg.confirm('Confirm', String.format('Are you sure about {0} record?',
                    product['id']),
                    function (btn){
                        if(btn=='yes') {
                          data.push(product['id']);
                        }
                        if (id<4){ //or some terminal condition you have
                          confirm(newId) //show confirm for new id or next..
                        } else {
                          collectData(data);
                        }    
                    }
    );
}
function collectData (data){
 // here I want to get collected data
console.log(data); // gives [] - empty
}