Ext JS中如何获取后端返回的额外响应参数?
获取ExtJS Store Write事件中的后端额外响应参数
核心解决思路
ExtJS Store的增删改操作最终由其关联的Proxy发起请求,因此可以直接监听Proxy的requestcomplete事件来获取完整的后端响应,而非仅依赖Store的write事件。
具体实现步骤
- 监听Proxy的请求完成事件:在Store初始化后,为其Proxy绑定
requestcomplete事件,该事件会返回完整的request和response对象,包含后端返回的所有数据。 - 匹配写操作场景:通过
operation.action判断当前操作类型(create/update/destroy),只处理增删改的写操作。 - 提取并展示额外参数:从响应数据中解析出后端返回的额外字段,比如
hello,再通过弹窗展示。
代码示例
// 假设你的Store实例为myStore myStore.getProxy().on('requestcomplete', function(proxy, response, operation) { // 仅处理增删改操作 if (!['read'].includes(operation.action)) { // 根据Proxy的Reader配置,可直接使用response.jsonData(若已自动解析) var resData = Ext.decode(response.responseText); // 检查并展示额外字段 if (resData.hello) { Ext.Msg.alert('提示', resData.hello); } } });
备选方案:直接从Operation获取响应
部分ExtJS版本中,Operation对象提供了getResponse()方法,可尝试直接调用:
myStore.on('write', function(store, operation) { var response = operation.getResponse(); if (response) { var resData = Ext.decode(response.responseText); if (resData.hello) { Ext.Msg.alert('提示', resData.hello); } } });
如果你的版本中该方法能返回有效数据,这种方式更简洁;若无效,优先使用Proxy事件监听方案。
内容的提问来源于stack exchange,提问作者Vlad Kisly
相关产品推荐
相关产品推荐

