ExtJs异步无法向外传值和赋值的完美解决办法
2017-06-14 08:55
555 查看
1、Ext.data.Store.load();方法是异步的,下面的方式获得的reCount始终是0,因为还没等后台的方法执行完就赋值了,此时store的record还没获得值。
var testStore = new Ext.data.GroupingStore({ proxy : new Ext.data.HttpProxy({ url : '' }), reader : new Ext.data.JsonReader({ root : 'hstamcx', totalProperty : "results", fields : ["id","value"] }) }); Ext.onReady(function(){ Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; testStore.load (); var reCount = testStore.getCount(); var port = new Ext.Viewport({ layout : 'auto', frame : true, items : [winKey] }); });
2、如果想要对加载的值进行处理,必须将后续处理写在回调函数中。
Ext.onReady(function(){ Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; testStore.load({ callback : function(r, options, success) { var reCount = testStore.getCount(); } }); var port = new Ext.Viewport({ layout : 'auto', frame : true, items : [winKey] }); });
此时可以获得reCount的值,并且callback : function(r, options, success)的r就是store加载查到的数据。
但依然存在问题:r的数据值只能在回调函数里面使用,在callback函数里既不能给外部的其他元素赋值,也没有办法将r数据传到外面去
3、如果想在js页面向后台发送请求,并在外面使用后台返回的数据值,可以使用Ext.Ajax.request,并将请求方式设置成同步,接收数据的变量要定义在Ext.Ajax.request外面
var cancelMode; Ext.Ajax.request({ url: '', method: 'post', sync:true, //同步请求 success: function(response) { var response = Ext.util.JSON.decode(response.responseText); cancelMode = response.hstamcx[0].param_value; } });
此时就可以在外面使用Ext.Ajax.request的请求获得的数据了,比如alert(cancelMode );
后台代码示例:该示例是举个大概例子,并不是完整代码
public void getData(HttpServletResponse response){ TestData td = TestDataDao.getTestdata(); String message = "{name:" + td .getName()+ ",id:" + td.getId()+ "}"; PrintWriter out=response.getWriter(); out.write(message); out.flush(); }
以上所述是小编给大家介绍的ExtJs异步无法向外传值和赋值的完美解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
相关文章推荐
- Extjs ComboBox 在form中无法自动赋值的解决办法!
- Internet Explorer 无法打开搜索页完美解决办法
- Extjs gridpanel使用遇到selectionchange被多次触发问题解决办法,grid表格复选框无法取消选中
- 【旧资料整理】无法删除文件,文件正在被另一个人或程序使用和无法删除硬件 完美解决办法
- VirtualBox复制的虚拟机无法获取IP的完美解决办法
- 用友nc65 uap开发跳转编辑状态自动赋值参照值无法带出解决办法
- IE6中运行EXTJS中某些组件无法解析DOMINO产生的JSON数据问题的解决办法
- IE6中运行EXTJS中某些组件无法解析DOMINO产生的JSON数据问题的解决办法
- 细谈 Web Api 图片上传,在使用 Task.ContinueWith 变量无法赋值问题的解决办法!
- ASP.Net项目的所有的变量突然无法赋值的问题解决办法
- jquery 异步调用方法中不能给全局变量赋值的原因及解决办法
- 【js】碰到了Flash与extjs冲突无法输入中文解决办法。
- 懒加载session 无法打开 no session or session was closed 解决办法(完美解决)
- jquery ajax 异步调用方法中不能给全局变量赋值的原因及解决办法
- 细谈 Web Api 图片上传,在使用 Task.ContinueWith 变量无法赋值问题的解决办法!
- jquery 异步调用方法中不能给全局变量赋值的原因及解决办法
- win7下VC6.0打开添加无法使用的解决办法 及 Win7下安装VC6.0的完美解决方案
- jquery ajax done 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
- 卸载office2003遇到zlonger.com.msi无法找到的完美解决办法
- Android studio无法创建类和接口和提示问题的完美解决办法