商店中的成功和失败函数 - Ext JS

2024-02-16

我有一个请求,成功后会循环遍历 JSON 响应的每个属性并将其添加到我的store:

var request = Ext.Ajax.request({
    url: 'MCApp',
    jsonData: searchquery,
    params: {
        start: 0,
        limit: itemsPerPage
    },
    success: function(response) {
        mainresponse = response.responseText;
        if (mainresponse.length == 0) {
            alert('No results returned');
            return;
        }
        var decoded = Ext.decode(mainresponse);
        for (var i = 0; i < decoded.elements.length; i++) { // loop over decoded data
            var element = decoded.elements[i].element;
            var model = {};
            for (var x = 0; x < element.attributes.length; x++) { // loop over attributes
                var attribute = element.attributes[x];
                model[attribute.attrname] = attribute.attrvalue; // mapping element names & attributes
            }
            newstore.add(model); // implicitly cast data as Model
            models[i] = model;
        }
        newstore.loadRawData(models);
    },
    failure: function() {
        alert('Search Failed: Could not reach the server')
    }
});

我现在已经重新创建了request上面在我的store。我需要做的是添加这些相同的成功和失败函数。

var store = Ext.create('Ext.data.Store', {
    storeId: 'resultsetstore',
    autoLoad: false,
    pageSize: itemsPerPage,
    fields: [
        { name: 'id',          type: 'auto' },
        { name: 'name',        type: 'auto' },
        { name: 'description', type: 'auto' }
    ],
    proxy: {
        type: 'ajaxwithpayload', //customized proxy to read "jsonData" 
        url: 'MCApp',
        jsonData: searchquery,
        reader: {
            type: 'json',
            root: 'elements'
        }
        success: { /* success functions */ },
        failure: { /* failure functions */ }
    }

});

我的回复如下:

{
   "elements":[
      {
         "element":{
            "name":"Element Name", 
            "id":"Element ID",
            "attributes":[
               {
                  "attrname":"id",
                  "attrvalue":"This is the ID"
               },
               {
                  "attrname":"name",
                  "attrvalue":"This is the name"
               },
               //etc.

1) 有什么方法可以在我的商店中重新创建这些功能吗?

2)以这种方式解码我的回复是将我的回复加载到我的商店的最佳方式吗?

EDIT

我在加载商店时使用回调函数:

store.load({
    params: { start: 0, limit: itemsPerPage },
    callback: function(options, success, response, records) {
        if (success) {
            alert(response.responseText);
        }           
    }
});

但是,我得到了undefined在我的警报中,它告诉我已加载 0 条记录。但是当我在 Firebug 中查看我的响应时,我发现我的 JSON 字符串返回得很好。


商店中的错误处理

您可以收听异常事件 http://docs-origin.sencha.com/extjs/4.2.2/#!/api/Ext.data.proxy.Server-event-exception在代理上捕获所有存储错误。 为了在商店取得成功加载事件 http://docs-origin.sencha.com/extjs/4.2.2/#!/api/Ext.data.AbstractStore-event-load

var store = Ext.create('Ext.data.Store', {
    storeId: 'resultsetstore',
    autoLoad: false,
    pageSize: itemsPerPage,
    fields: [
        { name: 'id',          type: 'auto' },
        { name: 'name',        type: 'auto' },
        { name: 'description', type: 'auto' }
    ],
    listeners: {
        load: function(store, records, successful, eOpts) {
            if (successfull) {
                alert('success');
            }
        }
    },
    proxy: {
        type: 'ajaxwithpayload', //customized proxy to read "jsonData" 
        url: 'MCApp',
        jsonData: searchquery,
        reader: {
            type: 'json',
            root: 'elements'
        },
        listeners: {
            exception: function(proxy, response, operation, eOpts) {
                alert('exception');
            }
        }
    }
});

或者在加载调用本身中:

store.load({
    callback: function(records, operation, success) {
        // ...
    }
});

或者如果您使用同步(用于保存删除的、修改的……)

store.sync({
    callback: function(batch, options) {
        // ...
    },
    success: function(batch, options) {
        // ...
    },
    failure: function(batch, options) {
        // ...
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

商店中的成功和失败函数 - Ext JS 的相关文章

  • ExtJS“日期字段”验证覆盖

    我需要一个具有一些自定义行为的日期列 特别是我需要能够在同一字段中输入日期或年龄 年龄保持呈现为年龄 日期保持呈现为日期 例如 输入 23 将使 23 在字段中保留为有效值 或者输入 22 1 88 将使 22 1 88 保留为有效值 所以
  • 使用 ExtJ 进行多选组合框

    如何实现多选组合框作为Ext FormPanel使用ExtJs 我一直在寻找 但似乎找不到与最新版本的 ExtJs 兼容的解决方案 这个问题 https stackoverflow com questions 2635809 multise
  • 使用分页 extjs 在组合框中搜索

    您好 我正在尝试在组合框中进行搜索 它正在工作 但仅在当前页面中搜索我也使用分页搜索 我需要在所有页面中搜索而不仅仅是当前页面 任何建议 xtype combo fieldLabel Organization Id name company
  • extjs 树面板上下文菜单不起作用

    var menu1 new Ext menu Menu items text Open in new tab var treePanel Ext create Ext tree Panel id tree panel region cent
  • Extjs 4.2 缓冲存储同步数据不起作用

    这是商店代码 Ext define NG store WhatsNews extend NG store AbstractStore model NG model auxClasses notifications WhatsNew alia
  • 在文本字段中输入文本时禁用面板水平滚动

    当有人在文本字段中输入文本时 我想禁用面板的水平滚动 第一个问题 目前的问题是 当您在任何文本字段中输入文本并按键盘上的右箭头键 keyCode 39 时 面板水平方向也会向正确的方向移动 我想在文本字段中输入文本时禁用它 第二个问题仅当单
  • 如何使 svg 元素(例如矩形)scrollIntoView?

    我在图形面板中有一个 svg svg 中的所有节点都在另一个面板中列出 我希望通过单击节点列表中的节点 svg 可以滚动到该节点 每个节点都是一个矩形 但我发现只有上边框在视图中 而节点的其余部分仍然在视图之外 有什么办法可以解决这个问题吗
  • EXTJS 网格中的小数精度

    我有一个网格 允许用户通过编辑行来输入数字 我希望该数字支持 4 位小数 但它只支持 2 位 我想出了如何显示 4 位小数 但它不记录任何超过 2 位小数的内容 因此 如果用户输入 1000 1111 结果字段将在网格中显示 1000 11
  • 如何在extjs中动态设置url和root

    有人能告诉我如何在 Ext JS 中动态设置商店的 url 和 root 吗 我创建了一家像下面这样的商店 我需要更新根并动态设置控制器内的 url Ext define Test store TestStore extend Ext da
  • ExtJS TreeGrid 中的复选框列

    有没有办法在新的 extjs 小部件 TreeGrid 中包含复选框列 将节点属性标记为 false true 并不像 TreePanel 那样有效 Cheers 我修改了 Ext ux tree TreeGridNodeUI 类来实现此功
  • 单击父节点时检查树的子节点 [ExtJS]

    我想知道如何在单击 ExtJs 中的特定节点时检查树的同级节点 我已经给了每个节点的 id 我可以访问单击的节点的 id 那么我如何继续自动检查子节点 有人请帮助我 or any other way of getting hands on
  • 将 Flex 值动态添加到 extjs 中的控制器

    我在 视图 中给出了一些项目 容器 布局为hbox 现在我想给flex通过 控制器 为每个项目赋予值 我怎样才能做到这一点 我已经浏览了文档 但找不到任何类似的方法setFlex EDIT Ext apply Ext getCmp IdHe
  • 比较 YUI 和 Ext JS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Extjs中始终显示Slider的提示文本

    在 Extjs 4 1 1a 中 如何保持tip text滑块始终可见 目前 tip text每当用户拖动滑块栏时就可见 我搜索了docs http docs sencha com ext js 4 0 api Ext slider Sin
  • ExtJs 4,从容器中删除控件并将其从内存中删除的正确方法是什么?

    这个问题很简单 但我找不到一个好的 明确的答案 正确的方法是什么 从容器中删除控件 在 ExtJs 4 中将其从内存中删除 Ext AbstractContainer remove http dev sencha com deploy ex
  • 如何创建适用于 iPhone、iPad 和 Android 的 Extjs 应用程序?

    有人成功创建了适用于 iPhone iPad 和 Android 的 Extjs 应用程序吗 我知道 Sencha 不支持移动设备上的 Extjs 但我不想创建另一个仅针对移动设备的网站 我不需要奇特的移动界面 只需要基本的功能 我做了一些
  • 无法加载所需框架:extjs 中的 ext@null

    设置 extjs 和 sencha 当我运行应用程序时出现错误无法加载所需的框架 root samuel pc Documents code test sencha app watch Sencha Cmd v6 5 0 180 ERR U
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 如何使用Ext.Ajax登录Spring Security?

    我正在使用 Extjs 6 和 Spring 4 开发一个应用程序 我的应用程序是 Restful 我启用 CORS Origin 如下所示 public class CorsFilter extends OncePerRequestFil
  • Extjs 4.0.7,编辑器网格 - 如何获取更新的单元格值?

    我需要在控制器中获取 检索 更新的单元格值 MVC 所以我尝试了这个 var modified this getItemGrid getStore getUpdatedRecords console log modified return

随机推荐

  • 如何比较java中的多个类?

    现在 我已经编写了对整数和字符串数组进行排序的比较器 从代码中可以看出 如果两个类不相同 则 String 类将采用大于值 但是 这仅允许两个类 如果我想向数组添加另一个基本类型 例如 Float 怎么办 我必须向 if else 语句添加
  • x64 上类方法崩溃的地址

    The AddressOf运算符仅适用于标准 bas 模块内的方法 我使用以下代码来检索类方法的地址 Option Explicit If VBA7 Then Private Declare PtrSafe Function DispCal
  • 如何在 Delphi 中格式化 Unix 时间戳?

    I have var timestamp Longint timestamp Round Now 25569 0 Unix start date in Delphi terms 86400 我在一些 MySql 中使用它作为主键 但我也想格
  • Material UI 组件上的 CSS

    我在尝试使用 Material UI 时不断遇到麻烦 我有一个 Material UI 表 我正在尝试将文本居中对齐 Material UI 标准 CSS 有一个名为 MuiTableCell root 60 的元素 它有一个带有 text
  • 在笑话测试中将通用数据放在哪里

    我不知道如何组织笑话测试的代码 我所有的测试都在 tests 和我所有的嘲笑 mocks 现在我有一些想要在测试之间共享的数据 它们不是现有函数的模拟 它们只是我想在不同文件中使用的一些 javascript 对象 我应该创建一个 data
  • Pentaho j_spring_security_check 混合内容。 HTTPS 到 HTTP

    我已根据需要在 Tomcat 8 5 和 OpenJDK 1 8 上安装了 Pentaho 9 x 在它前面的是带有 mod proxy http 的 Apache 2 4 我的网站使用 HTTPS 提供服务 并且我有以下代理规则 Requ
  • 了解 OCR 的 Freeman 链码

    请注意 我确实在寻找问题的答案 我是not寻找一些源代码或一些学术论文的链接 我已经使用了源代码 并且我已经阅读了论文 但仍然没有弄清楚这个问题的最后部分 我正在研究一些快速屏幕字体 OCRing 并且取得了很好的进展 我已经找到基线 分离
  • 如何在浏览器刷新时清除会话存储,但这不应在单击浏览器后退按钮时清除

    我只想在页面刷新时清除会话存储 而不是在 单击浏览器后退按钮 或单击前进 想要使用 angularjs javascript 来实现这个 我在单击后退按钮时将数据保存在会话存储中 因此我想在单击浏览器刷新按钮时清除相同的数据 但不应清除后退
  • 如何在 ASP.NET MVC 应用程序的 Razor 引擎中使用 Html.Displar 渲染 ModelMetadata 对象?

    我正在尝试利用DisplayTemplatesrazor engine 中的功能可自动渲染我的显示视图 我扫描我的Model找到正确的ModelMetadata对于我想要显示的每个属性 但我无法使用以下方式渲染属性Html DisplayF
  • 如何在 docker 中启用/禁用 buildkit?

    我从文档中得到了这个命令 但我真的不知道如何使用它或者我应该从哪里开始移动 我是 docker 的新手 而且概念对我来说仍然很难消化 DOCKER BUILDKIT 1 docker build 如何使用此命令在 docker 引擎中启用
  • 如何循环遍历特定标签内的每个标签?

    我正在创建一个函数 它有一个 for 循环 该循环遍历特定 div 中的每个标签 例如 这里是 div div div
  • Android BLE 被动扫描

    我想在我的 Android 应用程序中被动扫描 BLE 广告商 但我找不到如何做到这一点 根据蓝牙4 0核心规范 存在被动扫描模式 第6卷 核心系统包 低能耗控制器卷 D 部分 4 1 被动扫描 https www bluetooth or
  • 标准化 ggplot 中叠加密度图的 x 尺度

    当叠加具有相同长度但不同比例的数据的 ggplot 密度图时 是否可以标准化图的 x 比例以使密度匹配 或者有没有办法标准化密度 y 尺度 library ggplot2 data lt data frame x c A B C D E y
  • 使用 rvm 安装 ruby​​ 标头

    Travis CI 使用 RVM 提供 Ruby 但它似乎不包含标头 find home vagrant rvm rubies ruby 1 9 3 p194 lib ruby 1 9 1 i686 linux home vagrant r
  • 如何在 Google 电子表格中使用 OR 语句嵌套 IF 块

    我正在寻找有关我在 Google 电子表格中使用的这段小代码的帮助 ArrayFormula IF OR F2 F Cancelled G2 G Cancelled Cancelled IF F2 F Finished 20 IF G2 G
  • Joi 正则表达式不被识别为正则表达式模式

    我正在尝试为密码字段制定验证规则 它应包含以下内容 必须有号码 必须至少包含一个大写字母 必须包含至少一个小写字母 必须包含以下任何符号 长度应仅为 8 到 20 个字符 这是我使用的正则表达式模式 a z A Z d A Za z d 8
  • Django:尝试在 URL 中使用 Slug 时出现 404 错误

    我是 Django 的初学者 现在 我正在通过构建一个名为 PhoneReview 的应用程序来学习该框架 它将存储与最新手机相关的评论 它还将显示手机品牌 相关手机型号及其评论 现在 我正在尝试在 URL 中使用 slug 我已经在我的两
  • SQL Server中如何保持插入顺序

    我只是想知道我是否可以保持SQL Server中数据插入的顺序 我正在开发自己的项目 它是一种包含许多帖子的博客网站 我会将我的帖子保存到 SQL Server 但我希望它们按插入顺序排列 问 据我了解 如果我在SQL Server中使用自
  • 显示和隐藏窗口,而不是在可可应用程序中关闭单击时终止应用程序

    我一直在尝试在关闭 红色按钮 单击窗口时显示隐藏窗口 我想做的是隐藏窗口 当用户再次单击我的应用程序时 它将再次显示 预先感谢所有提供答案的开发人员 我是 Cocoa 应用程序的新手 我是iOS开发人员 所以我对cocoa应用程序了解不多
  • 商店中的成功和失败函数 - Ext JS

    我有一个请求 成功后会循环遍历 JSON 响应的每个属性并将其添加到我的store var request Ext Ajax request url MCApp jsonData searchquery params start 0 lim