1. 程式人生 > >extjs中Ext.Ajax.request同步請求和非同步請求

extjs中Ext.Ajax.request同步請求和非同步請求

用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就會是沒有定義,所以需要設定為同步