extjs中Ext.Ajax.request同步請求和非同步請求
阿新 • • 發佈:2018-11-19
用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就會是沒有定義,所以需要設定為同步