ProxyStore中的循环依赖性错误

时间:2015-09-16 11:33:19

标签: javascript json extjs extjs6

我正试图在extjs6中解决一个棘手的错误。在ProxyStore中保存记录时,我得到一个无限循环:

  

Ext.JSON.doEncode ext-all-debug.js:48683

     

Ext.JSON.encodeObject @ ext-all-debug.js:48789

     

Ext.JSON.doEncode @ ext-all-debug.js:48685

     

Ext.JSON.encodeObject @ ext-all-debug.js:48789

经过进一步调查,我发现如果我第二次在表中保存一行,那么我表中的数据对象会被一些奇怪的方法污染。

最初我在我的商店数据(例如 store.data.items [0] .data )中有这样的条目:

{autoRelease: false
id: "app.model.DssMarketModel-9"
foo: "1"
bar: "2"}

如果我在对话框和 Ext.form.Panel 中打开它,我可以修改此对象并保存它。然而,在我保存之后,在我执行同步后,记录会被一大堆垃圾污染。在代理商店(即 Ext.data.ProxyStore sync())。

{
getAllResponseHeaders: ()
getResponseHeader: (name)
request: constructor
getAllResponseHeaders: ()
getResponseHeader: (name)
////
autoRelease: "false"
id: "app.model.DssMarketModel-9"
foo: "1"
bar: "2"
////
request: constructor
requestId: 9
responseText: ""
responseXML: null
status: 200
statusText: "OK"
__proto__: Object
}

这导致我的堆栈溢出循环依赖问题,因为请求对象深处再次引用同一个记录对象,使得同步不可能。

似乎这些新属性已通过名为 app.overrides.ResponseHeadersBugfix 的内容放在那里。

有谁知道为什么会出现这个问题?为什么ResponseHeadersBugFix属性会将自己附加到我的表记录中?

0 个答案:

没有答案