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

发布时间 - 2026-01-11 01:52:18    点击率:

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  # 异步传值和赋值  # javascript引用赋值(地址传值)用法实例  # JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题  # JavaScript对象引用与赋值实例详解  # JavaScript引用赋值与传值赋值总结  # 还没  # 回调  # 小编  # 加载  # 在此  # 并在  # 给大家  # 并将  # 没有办法  # 可以使用  # 能给  # 写在  # 可以获得  # 既不  # 解决办法  # 所述  # 给我留言  # 感谢大家  # 存在问题  # 就可以 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 公司网站制作需要多少钱,找人做公司网站需要多少钱?  如何在建站宝盒中设置产品搜索功能?  如何在建站之星网店版论坛获取技术支持?  JavaScript如何实现倒计时_时间函数如何精确控制  如何在橙子建站中快速调整背景颜色?  如何在阿里云通过域名搭建网站?  网站图片在线制作软件,怎么在图片上做链接?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Bootstrap CSS布局之列表  如何实现建站之星域名转发设置?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel如何使用Telescope进行调试?(安装和使用教程)  EditPlus中的正则表达式 实战(4)  PythonWeb开发入门教程_Flask快速构建Web应用  PHP正则匹配日期和时间(时间戳转换)的实例代码  Python文本处理实践_日志清洗解析【指导】  网易LOFTER官网链接 老福特网页版登录地址  如何用已有域名快速搭建网站?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  html5的keygen标签为什么废弃_替代方案说明【解答】  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  海南网站制作公司有哪些,海口网是哪家的?  如何破解联通资金短缺导致的基站建设难题?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  javascript中对象的定义、使用以及对象和原型链操作小结  如何在阿里云虚拟服务器快速搭建网站?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  MySQL查询结果复制到新表的方法(更新、插入)  简单实现Android验证码  专业商城网站制作公司有哪些,pi商城官网是哪个?  Laravel如何实现API速率限制?(Rate Limiting教程)  php打包exe后无法访问网络共享_共享权限设置方法【教程】  Laravel如何使用Service Container和依赖注入?(代码示例)  C#如何调用原生C++ COM对象详解  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  HTML 中动态设置元素 name 属性的正确语法详解  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  非常酷的网站设计制作软件,酷培ai教育官方网站?  javascript中的try catch异常捕获机制用法分析  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  javascript中数组(Array)对象和字符串(String)对象的常用方法总结