我正在试图找出如何将这样的树结构读入适当的模型实例:
{
"name":"root"
"kids":[
{
"name":"kid1",
"kids": [...] //More kids
},
{
"name":"kid2",
"kids": [...] //More kids
},
{
"name":"kid3",
"kids": []
},
...
]
}
以下是我尝试的两种型号:
Ext.define('TreeNode', {
extend: 'Ext.data.Model',
config: {
fields: ['name'],
hasMany:{model: 'TreeNode', name: 'kids'}
}
});
//This one seems to work, but it simply loads
//generic objects into the "kids" property
//and not real model instances.
Ext.define('TreeNode', {
extend: 'Ext.data.Model',
config: {
fields: ['name', 'kids']
}
});
商店:
Ext.define('TreeStructureStore', {
extend: 'Ext.data.Store',
config: {
autoLoad: false,
model: 'TreeNode',
proxy: {
type: 'ajax',
url: 'simple.json',
reader: {
type: 'json'
}
}
}
});
我似乎无法让模型和商店正常工作。充其量它只会读取最顶层的元素。如何让它以递归方式读取并生成正确的模型实例树?
答案 0 :(得分:2)
http://www.sencha.com/forum/showthread.php?178848-Nested-JSON-and-hasMany-associations
看起来类似于我遇到的问题并且最终能够解决(并在Sencha论坛中发布了答案)。这里的关键点是对hasMany关联使用associationKey配置属性,但请查看整个帖子。