javascript - 如果代理遇到异常,Ext JS 4.0 取消存储加载

标签 javascript ajax model-view-controller extjs

当与商店关联的代理遇到异常(例如 404)时,我可以以某种方式停止 .load() 进程吗?

我正在使用 Ajax 代理。有一个'exception' event on the proxy ,但我不知道在回调中到底要做什么。

现在,即使没有数据,商店也会尝试将数据填充到模型中(使用我定义的映射),这会导致丑陋的红色错误消息。

更新

也许最好不要停止 load() 过程,而是处理实际将 JSON 转换为模型实例的事物(读取器?)中丢失的数据。这个想法是优雅地处理丢失的数据。我该怎么做?

最佳答案

这有点棘手,尤其是当您的商店与数据查看器组件绑定(bind)时。

一旦到达异常事件,load()进程就会停止,所以我相信你无法控制那里。

在处理 Ajax 的 exception 事件时,您可以使用 store.add() 手动将数据填充到存储中,

ajax.on('exception', function () {
    // since exception was called, i'll have to input data myself.
    store.add({
        field1: 'value1', 
        field2: 'value2'
    });
}); 

我的代码基于 ExtJS 3 语法,可能与 ExtJS 4 有所不同,但概念应该是相同的。

关于javascript - 如果代理遇到异常,Ext JS 4.0 取消存储加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883943/

相关文章:

Javascript如何提交表单?

javascript - 如何包含 JavaScript 库?

Jquery 使用 FormData POST 图像和字符串

javascript - NodeJs : modular system

javascript - Sencha Ext JS 4,使用另一个面板创建可拖动面板时遇到问题

javascript - AngularJS 和 ReactJS 之间的主要区别是什么

javascript - Grunt/Webpack/Babel 中的路径错误

javascript - 如何加载两个 iframe,第一个 iframe 已经加载后一个?

php - 如何使用ajax和php在没有表单的情况下使用复选框将数据插入数据库

ios - 如何使用MVC获取变量