当销毁的子字段数据丢失时,窗口构造函数配置中的Extjs记录

当销毁的子字段数据丢失时,窗口构造函数配置中的Extjs记录,extjs,Extjs,我有一个Extjs窗口,它接收一个模型/记录作为配置的一部分,如下所示: var myModel = Ext.create('App.model.MyModel', { ... }); var window = new Ext.widget('mywindow',{ myModel: myModel, }); {name:'regular_field',type: 'string'}, {name:'subfield_main',type: 'jso

我有一个Extjs窗口,它接收一个模型/记录作为配置的一部分,如下所示:

 var myModel = Ext.create('App.model.MyModel', { ... });

var window = new Ext.widget('mywindow',{
            myModel: myModel,
        });
{name:'regular_field',type: 'string'},
{name:'subfield_main',type: 'json', fields:[
            {name:'subfield1', type:'string'},
            {name:'subfield2', type:'string'}
        ]},
myModel是具有以下关联的记录:

{type: 'hasMany', model: 'App.model.OtherModel', name: 'othermodel'},
othermodel具有如下字段和子字段:

 var myModel = Ext.create('App.model.MyModel', { ... });

var window = new Ext.widget('mywindow',{
            myModel: myModel,
        });
{name:'regular_field',type: 'string'},
{name:'subfield_main',type: 'json', fields:[
            {name:'subfield1', type:'string'},
            {name:'subfield2', type:'string'}
        ]},
销毁窗口后,我获得了对myModel的引用。 我可以访问othermodel存储并获得第一个othermodel实例OK。 但问题是它在子字段_main上没有任何数据!!!虽然它有常规_字段上的数据


是什么导致了这种行为???谢谢你的帮助

子字段_main使用嵌套字段定义。没有这样的特点。您可以改为使用映射:

{name:'regular_field',type: 'string'},
{name:'subfield1',type: 'string', mapping: 'subfield_main.subfield1'},
{name:'subfield2',type: 'string', mapping: 'subfield_main.subfield2'},

底线。这不是一个Extjs问题。 受Christoph建议的启发,我开始聆听StoreDataChanged事件。 在仔细观察事件何时被调用以及Chrome调试控制台中的网络选项卡后,我设法找到了问题所在,这实际上是在我的后端代码中。它没有返回填充数据库所需的数据

 {name:'subfield_main',type: 'json', fields:[
            {name:'subfield1', type:'string'},
            {name:'subfield2', type:'string'}
        ]},

谢谢你的建议。我尝试映射,甚至尝试将子字段_main更改为与第三个模型的关联,但不幸的是得到了相同的结果。现在,OtherModel与第三个模型有关联:{type:'hasMany',model:'App.model.ThirdModel',name:'thirdmodels'},第三个模型存储被创建并第一次填充为OK。但是当窗口关闭后,ThirdModelStore就没有记录了。同样的行为cualit 28分钟前,您可以尝试设置一个断点,以清除存储的功能,并查看stacktrace,也许您可以看到谁清空了存储。如果您使用的是ExtJS4.2.1和缓冲存储,那么可以将断点设置为store.Js,第2329行,onPageMapClear.Christoph谢谢您的建议。我使用的是Ext4.0.7,但你启发我去听store datachanged事件!在仔细观察事件何时被调用以及Chrome调试控制台中的网络选项卡之后,我设法找到了问题所在(这实际上是在我的后端代码中,而不是在Extjs上!)。再次感谢你的帮助!我试着投票赞成你的答案,但因为我是这里的新手,所以我不被允许这样做。