我有一个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的数据。
导致此行为的原因是什么?谢谢你的帮助!
答案 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'}
]},