我们正在使用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
结果是表单出现但字段未填充数据,如果用户再尝试一个,则整个应用程序崩溃。
欢迎任何想法!
答案 0 :(得分:1)
Sencha ExtJS魔法造成了这个奇怪的错误。
实际上在后台有一个GET请求从服务器检索特定模型。
这是extjs框架的意外行为,因为模型已经被检索并保存在内存中 此时没有我们的源代码询问或暗示与服务器的任何连接。
我们猜这是从服务器刷新数据的默认行为,以防其他用户在此期间更改了数据,但仍然让人感到惊讶。
这种“魔力”对于任何开发团队来说都很少有用。
无论如何在实施/user/list?id=XXX
之后,它运作良好。
注意我们正在使用代理ajax
答案 1 :(得分:0)
我知道这已经过时了,但我想说这种行为是因为没有在会话中存储商店。
转到viewmodel并将绑定到网格的商店的配置设置为session:true以及全部。
否则,当模型代理向其发送记录ID时,您必须在服务器上实现单个模型响应。
另一个有趣的行为是,当您尝试编辑网格的第一行时,往返服务器,服务器应答所有行,并且服务器返回的行具有相同的顺序,第一行与您尝试编辑的内容相同,因此框架会成功解析数据,并且不会出错。