需求:希望在一个公共函数中实现与后台交互,然后将从后台获取的数据作为函数返回值返回
方案:
由于我的Extjs版本是3.4,所以无法使用Ext.lib.Ajax.getConnectionObject(),这个排除。
functionajaxSearch(callback,partNumber,partName){ //callback是回调函数,partNumber和partName是传到后台查询的参数
Ext.Ajax.request({
url:'../../hwdispatcher/ajaxSearchMaterial',
params:{partNumber:partNumber,partName:partName},
success:function(response){
varres=Ext.decode(response.responseText);
callback(res.material);
},
failure:function(response){
Ext.Msg.alert("failure",response.status);
}
});
}
调用方式一:
varmyCallback=function(m){
alert(m); //m是ajaxSearch的查询结果,可以在这里写余下的逻辑代码
}
ajaxSearch(myCallback,partName);
Ext.Ajax.request({
url:'../../hwdispatcher/ajaxSearchMaterial',
params:{partNumber:partNumber,partName:partName},
success:function(response){
varres=Ext.decode(response.responseText);
callback(res.material);
},
failure:function(response){
Ext.Msg.alert("failure",response.status);
}
});
}
调用方式一:
varmyCallback=function(m){
alert(m); //m是ajaxSearch的查询结果,可以在这里写余下的逻辑代码
}
ajaxSearch(myCallback,partName);
调用方式二:
ajaxSearch(function(m){
alert(m);
},partName);