什么是异常未捕获错误:为...返回无效的记录ID?

时间:2015-10-22 15:57:06

标签: debugging extjs

我们正在使用ExtJS 6.0.0 GPL

情况包括一个网格,当选择一行并点击编辑按钮时,会创建一个表格 表单的字段绑定到动态视图模型。 此视图模型具有指向与行对应的模型的链接。

不确定上述是否有帮助,但我们真的无法理解以下异常。

  

未捕获错误:为5 @ UserExt.Error返回的记录ID无效@ ext-all-rtl-debug.js?_dc = 1445528508045:2312Ext.apply.raise @ ext-all-rtl-debug.js?_dc = 1445528508045 :2371Ext.raise @ ext-all-rtl-debug.js?_dc = 1445528508045:2450options.recordCreator @ ext-all-rtl-debug.js?_dc = 1445528508045:80876Ext.define.extractRecord @ ext-all-rtl-debug .js?_dc = 1445528508045:82934Ext.define.extractData @ ext-all-rtl-debug.js?_dc = 1445528508045:82890Ext.Base.Base.addMembers.callParent @ ext-all-rtl-debug.js?_dc = 1445528508045 :11714Ext.define.extractData @ ext-all-rtl-debug.js?_dc = 1445528508045:86691Ext.define.readRecords @ ext-all-rtl-debug.js?_dc = 1445528508045:82834Ext.Base.Base.addMembers.callParent @ ext-all-rtl-debug.js?_dc = 1445528508045:11714Ext.define.readRecords @ ext-all-rtl-debug.js?_dc = 1445528508045:86634Ext.define.read @ ext-all-rtl-debug.js ?_dc = 1445528508045:82749Ext.define.processResponse @ ext-all-rtl-debug.js?_dc = 1445528508045:85771(匿名函数)@ ext-all-rtl-debug.js?_dc = 14455285080 45:86367Ext.apply.callback @ ext-all-rtl-debug.js?_dc = 1445528508045:8174Ext.define.onComplete @ ext-all-rtl-debug.js?_dc = 1445528508045:24691Ext.define.onStateChange @ ext- all-rtl-debug.js?_dc = 1445528508045:24631(匿名函数)@ ext-all-rtl-debug.js?_dc = 1445528508045:6404

结果是表单出现但字段未填充数据,如果用户再尝试一个,则整个应用程序崩溃。

欢迎任何想法!

2 个答案:

答案 0 :(得分:1)

Sencha ExtJS魔法造成了这个奇怪的错误。

实际上在后台有一个GET请求从服务器检索特定模型。

奇怪的行为会花费时间

这是extjs框架的意外行为,因为模型已经被检索并保存在内存中 此时没有我们的源代码询问或暗示与服务器的任何连接。

我们猜这是从服务器刷新数据的默认行为,以防其他用户在此期间更改了数据,但仍然让人感到惊讶。

这种“魔力”对于任何开发团队来说都很少有用。

无论如何在实施/user/list?id=XXX之后,它运作良好。 注意我们正在使用代理ajax

答案 1 :(得分:0)

我知道这已经过时了,但我想说这种行为是因为没有在会话中存储商店。

转到viewmodel并将绑定到网格的商店的配置设置为session:true以及全部。

否则,当模型代理向其发送记录ID时,您必须在服务器上实现单个模型响应。

另一个有趣的行为是,当您尝试编辑网格的第一行时,往返服务器,服务器应答所有行,并且服务器返回的行具有相同的顺序,第一行与您尝试编辑的内容相同,因此框架会成功解析数据,并且不会出错。