【发布时间】:2012-07-08 21:15:11
【问题描述】:
我有一个 TreeStore,它工作得很好,但是每个节点都有一些嵌套数据,所以我为它制作了一个新模型并使用了hasMany 关联。但是现在商店不再加载任何内容。当我查看 load 事件中的记录时,它们是空的,但浏览器告诉我 Ajax 请求像以前一样交付了所有内容。
这是节点数据来自服务器时的样子:
{ "路径": "KEY_518693", "名称": "KEY_518693", “数据”: [ { “分支”:“KEY_518693”, "primnav": "ETC", “X”:29261, “Y”:96492 }, ... ], “孩子们”: [ ... ], ... }这些是我的模型定义:
树节点: { 扩展:'Ext.data.Model', 要求:[ '数据记录', 'Ext.data.association.HasMany' ], 字段:[ {名称:'id',类型:'string',映射:'path'}, {名称:'文本',类型:'字符串',映射:'名称'}, ... ], 有很多 : { 模型:'数据记录', 名称:'数据' } 数据记录: { 扩展:'Ext.data.Model', 字段:[ {名称:'分支',类型:'字符串'}, {名称:'primnav',类型:'string'}, {名称:'X',类型:'int'}, {名称:'Y',类型:'int'} ] }当我删除关联时,树加载没有问题。当我将data 添加到字段时,它会被解析到树中,但作为“原始”对象而不是模型实例。
【问题讨论】:
-
作为解决此问题的第一步,请注意
DataRecord没有名为treenode_id的字段 - 因此您的 hasMany 关联不完整。请参阅docs 了解更多信息。 -
哦,是的,我看到了。在我制作
primaryKey: 'branch'之后,它起作用了。我对name也有错误,它不应该是data -
是的,设置名称后,记录再次加载,设置primaryKey后填充解析数据。