ExtJs异步无法向外传值和赋值的完美解决办法


Posted in Javascript onJune 14, 2017

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异步无法向外传值和赋值的完美解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery库与其他JS库冲突的解决办法
Feb 07 Javascript
jQuery源码分析-01总体架构分析
Nov 14 Javascript
JavaScript onkeydown事件入门实例(键盘某个按键被按下)
Oct 17 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
Nov 07 Javascript
Angularjs全局变量被作用域监听的正确姿势
Feb 06 Javascript
jQuery ztree实现动态树形多选菜单
Aug 12 Javascript
原生js实现无限循环轮播图效果
Jan 20 Javascript
JSONP跨域请求
Mar 02 Javascript
JavaScript简单计算人的年龄示例
Apr 15 Javascript
js获取浏览器的各种属性
Apr 27 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
Oct 28 jQuery
微信小程序搭建自己的Https服务器
May 02 Javascript
详解Vue爬坑之vuex初识
Jun 14 #Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
Jun 13 #Javascript
微信小程序调用PHP后台接口 解析纯html文本
Jun 13 #Javascript
vue时间格式化实例代码
Jun 13 #Javascript
详解vue slot插槽的使用方法
Jun 13 #Javascript
详解Vue.js分发之作用域槽
Jun 13 #Javascript
Javascript实现从小到大的数组转换成二叉搜索树
Jun 13 #Javascript
You might like
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
php中smarty区域循环的方法
2015/06/11 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
2015/03/03 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
2016/08/02 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现抢购IPhone手机
2018/02/07 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
基于python实现从尾到头打印链表
2019/11/02 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
Python3如何判断三角形的类型
2020/04/12 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
英语简历自我评价
2014/01/26 职场文书
烹调加工管理制度
2014/02/04 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
三严三实·严以用权心得体会
2016/01/12 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL