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


相关推荐: 如何快速搭建虚拟主机网站?新手必看指南  如何用VPS主机快速搭建个人网站?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  魔方云NAT建站如何实现端口转发?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何选择PHP开源工具快速搭建网站?  浅谈Javascript中的Label语句  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  晋江文学城电脑版官网 晋江文学城网页版直接进入  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  免费视频制作网站,更新又快又好的免费电影网站?  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  清除minerd进程的简单方法  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  如何快速搭建支持数据库操作的智能建站平台?  如何在云主机上快速搭建多站点网站?  网站优化排名时,需要考虑哪些问题呢?  zabbix利用python脚本发送报警邮件的方法  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  java获取注册ip实例  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  利用 Google AI 进行 YouTube 视频 SEO 描述优化  Laravel如何创建自定义中间件?(Middleware代码示例)  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  如何在服务器上三步完成建站并提升流量?  历史网站制作软件,华为如何找回被删除的网站?  南京网站制作费用,南京远驱官方网站?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  *服务器网站为何频现安全漏洞?  C++时间戳转换成日期时间的步骤和示例代码  焦点电影公司作品,电影焦点结局是什么?  简单实现jsp分页  Mybatis 中的insertOrUpdate操作  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何基于云服务器快速搭建个人网站?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  如何快速重置建站主机并恢复默认配置?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  高端智能建站公司优选:品牌定制与SEO优化一站式服务  浅析上传头像示例及其注意事项  Laravel怎么导出Excel文件_Laravel Excel插件使用教程