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 相关文章推荐
input按钮的事件处理大全
Dec 10 Javascript
真正的JQuery.ajax传递中文参数的解决方法
May 28 Javascript
通过一段代码简单说js中的this的使用
Jul 23 Javascript
JAVASCRIPT函数作用域和提前声明 分享
Aug 22 Javascript
php实例分享之实现显示网站运行时间
May 20 Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 Javascript
jquery Easyui快速开发总结
Aug 20 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
Oct 09 Javascript
js如何获取访问IP、地区、当前操作浏览器
Jul 23 Javascript
vue实现修改图片后实时更新
Nov 14 Javascript
微信小程序实现音频文件播放进度的实例代码
Mar 02 Javascript
JS+Canvas实现五子棋游戏
Aug 26 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
剧场版动画《PSYCHO-PASS 3 FIRST INSPECTOR》3月27日日本上映!
2020/03/06 日漫
用PHP实现Ftp用户的在线管理的代码
2007/03/06 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
SSO单点登录的PHP实现方法(Laravel框架)
2016/03/23 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
HTML node相关的一些资料整理
2010/01/01 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python定时执行指定函数的方法
2015/05/27 Python
深入浅析Python的类
2018/06/22 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python调用staf自动化框架的方法
2018/12/26 Python
对python生成业务报表的实例详解
2019/02/03 Python
python async with和async for的使用
2019/06/20 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
Django使用中间件解决前后端同源策略问题
2019/09/02 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
浅析Python 条件控制语句
2020/07/15 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
使用Html5多媒体实现微信语音功能
2019/07/26 HTML / CSS
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
往来会计岗位职责
2013/12/19 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
电力工程合作意向书
2015/05/11 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
tensorflow学习笔记之tfrecord文件的生成与读取
2021/03/31 Python