用Ext.Ajax.request请求默认是异步请求,这就导致定义的对象无法识别,没有定义,因此需要将请求方式改为同步。请看代码。
function showFormPanel(){
if(centerPanel.getSelectionModel().hasSelection()){
var records = centerPanel.getSelectionModel().getSelection();
if(records.length == 1){
var record = records[0];
if(record.data.roleid != ''){
Ext.Ajax.request({
url: 'getFidByRoleid',
async:false,//false同步,true异步
params: {
roleid: record.data.roleid
},
success: function(response){
var text = response.responseText;
console.log(text);
var data = JSON.parse(text);
console.log(data.roleMenus[0].roleid);
updateQxzWin.setVisible(true);
}
});
}
}else{
Ext.Msg.alert('提示', '不能同时处理两个业务');
}
}else{
Ext.Msg.alert('提示', '请选择具体业务信息');
}
}
在这个代码中,若将async设置成true,则success中updateQxzWin就会是没有定义,所以需要设置为同步