【发布时间】:2011-10-09 23:48:04
【问题描述】:
我整个晚上都在试图解决这个问题,但无济于事。我有一个 JSON 结构如下(来自另一个系统,所以我不能改变它的结构):
{ “父母”:{ “父母”:[ { “父ID”:1, “孩子们”:{ “孩子”:[ { "childId":1, }, { "childId":2, } ] } }, { “父ID”:2, “孩子们”:{ “孩子”:[ { "childId":1, }, { "childId":2, } ] } } ], "pageNum":1, “页面大小”:2 } }但是,我无法弄清楚数据模型的正确结构应该是什么。我尝试了以下方法,但它不起作用。顺便说一句,我可以访问父信息。问题在于访问子信息。所以,我想我设置关系数据的方式有问题。
Ext.regModel("父模型", { 有很多: { 模型:'ChildrenModel', name: 'children.child' // 不太确定这个位 }, 字段:[ {名称:'parentId',类型:'string'} ], 代理: { 类型:'ajax', 网址:'models.json', 读者:{ 类型:'json', root: 'parents.parent' // 这很好用 } } }); Ext.regModel('ChildrenModel', { belongsTo: 'ParentModel', // 不太确定这个位 字段:[{name:'childId',类型:'string'}] });使用数据存储:
Ext.regStore('ParentModelStore', { 模型:'父模型', 自动加载:真 });我正在使用以下模板获取父信息,但无法从中获取子数据:
myapp.views.ParentView = Ext.extend(Ext.Panel, { 布局:'卡片', 初始化组件:函数(){ this.list = new Ext.List({ itemTpl: 新的 Ext.XTemplate( '',
'{parentId}', // 这很好用
'
',
'我正在努力解决的事实是“子”和“父”元素分别被另一个元素“子”和“父”包围。
非常感谢任何帮助。
提前致谢,
菲利普
PS 如果我删除外部“children”包装元素并只保留内部“child”元素(并在模型定义中将“children.child”更改为“child”),代码可以正常工作。
PPS 我正在回答我自己的问题:
哇!我忘了在 ParentModel 的字段中添加“children”元素。
应该如下所示(注意:我不需要指定 'hasMany' 或 'associations' 元素 - 不太清楚为什么会这样或包含它们有什么好处):
Ext.regModel("父模型", { 字段:[ {name:'parentId',类型:'string'}, {name: 'children'} // 添加此字段非常重要 ], 代理: { 类型:'ajax', 网址:'models.json', 读者:{ 类型:'json', root: 'parents.parent' // 这很好用 } } }); Ext.regModel('ChildrenModel', { 字段:[{name:'childId',类型:'string'}] });模板也可以正常工作:
'【问题讨论】: