当被破坏的子字段数据丢失时,Extjs记录在窗口构造函数配置中

时间:2013-06-17 01:12:15

标签: extjs

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

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

var window = new Ext.widget('mywindow',{
            myModel: myModel,
        });

myModel是具有以下关联的记录:

{type: 'hasMany', model: 'App.model.OtherModel', name: 'othermodel'},

其他模型的字段和子字段如下:

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

窗口被销毁后,我获得了对myModel的引用。 我可以访问othermodel存储并获取第一个othermodel实例OK。 但问题是它在subfield_main上没有任何数据!虽然它有关于regular_field的数据。

导致此行为的原因是什么?谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

您对subfield_main使用嵌套字段定义。没有此类功能documented。您可以改为使用映射:

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

答案 1 :(得分:0)

底线。这不是Extjs问题。 受到Christoph建议的启发,我开始收听商店datachanged活动。 在仔细观察事件被调用的时间以及Chrome调试控制台中的“网络”选项卡后,我设法找到问题,这实际上是在我的后端代码中。它没有返回填充

所需的数据
 {name:'subfield_main',type: 'json', fields:[
            {name:'subfield1', type:'string'},
            {name:'subfield2', type:'string'}
        ]},