2

我有一个 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到字段时,它被解析到树中,但作为“原始”对象而不是模型实例。

4

2 回答 2

2

请注意,DataRecord 没有名为 treenode_id 的字段 - 因此您的 hasMany 关联不完整。有关更多信息,请参阅文档

于 2012-07-09T14:01:54.257 回答
0

我的方法有两个问题。

  1. 关联的名称不应该是“数据”,否则根本不会加载记录。
  2. 关联的primaryKey必须设置正确,在我的情况下'branch'是正确的
于 2012-07-09T13:56:37.480 回答