我有一个 TreeStore,它工作得很好,但每个节点都有一些嵌套数据,所以我为它创建了一个新模型并使用了 hasMany
关联。但现在商店不再加载任何东西了。当我查看 load
事件中的记录时,它们是空的,但浏览器告诉我 Ajax 请求像以前一样传递了所有内容。
这就是来自服务器的节点数据的样子:
{ "path": "KEY_518693", "name": "KEY_518693", "data": [ { "branch": "KEY_518693", "primnav": "ETC", "X": 29261, "Y": 96492 }, ... ], "children": [ ... ], ... }
这些是我的模型定义:
TreeNode: { extend : 'Ext.data.Model', requires: [ 'DataRecord', 'Ext.data.association.HasMany' ], fields : [ { name: 'id' , type: 'string', mapping: 'path' }, { name: 'text', type: 'string', mapping: 'name' }, ... ], hasMany : { model: 'DataRecord', name : 'data' }
DataRecord: { extend: 'Ext.data.Model', fields: [ { name: 'branch' , type: 'string'}, { name: 'primnav', type: 'string' }, { name: 'X' , type: 'int' }, { name: 'Y' , type: 'int' } ] }
当我删除关联时,树加载没有问题。当我将 data
添加到字段时,它会被解析到树中,但作为“原始”对象而不是模型实例。
最佳答案
请注意,DataRecord 没有名为 treenode_id 的字段 - 因此您的 hasMany 关联不完整。请参阅docs了解更多信息。
关于ExtJS 4.1 TreeStore 未加载关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11395628/