ExtJS 4.1 TreeStore不';不要用联想来加载
我有一个TreeStore,它工作得很好,但是每个节点都有一些嵌套数据,所以我为它建立了一个新模型,并使用了ExtJS 4.1 TreeStore不';不要用联想来加载,extjs,extjs4.1,Extjs,Extjs4.1,我有一个TreeStore,它工作得很好,但是每个节点都有一些嵌套数据,所以我为它建立了一个新模型,并使用了hasMany关联。但现在商店什么也装不下了。当我查看load事件中的记录时,它们是空的,但是浏览器告诉我Ajax请求像以前一样交付了所有内容 这是来自服务器的节点数据的外观: { "path": "KEY_518693", "name": "KEY_518693", "data": [ { "branch": "KEY_518693", "pr
hasMany
关联。但现在商店什么也装不下了。当我查看load
事件中的记录时,它们是空的,但是浏览器告诉我Ajax请求像以前一样交付了所有内容
这是来自服务器的节点数据的外观:
{
"path": "KEY_518693",
"name": "KEY_518693",
"data": [
{
"branch": "KEY_518693",
"primnav": "ETC",
"X": 29261,
"Y": 96492
},
...
],
"children": [ ... ],
...
}
{
“路径”:“键518693”,
“名称”:“密钥号518693”,
“数据”:[
{
“分支机构”:“键518693”,
“原始导航”:“等”,
“X”:29261,
“Y”:96492
},
...
],
“儿童”:[……],
...
}
以下是我的模型定义:
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'
}
TreeNode:
{
扩展:“Ext.data.Model”,
要求:[
“数据记录”,
“Ext.data.association.HasMany”
],
字段:[
{name:'id',type:'string',mapping:'path'},
{name:'text',type:'string',mapping:'name'},
...
],
有很多:{
型号:“数据记录”,
名称:“数据”
}
数据记录:
{
扩展:“Ext.data.Model”,
字段:[
{name:'branch',type:'string'},
{name:'primnav',键入:'string'},
{name:'X',type:'int'},
{name:'Y',type:'int'}
]
}
当我删除关联时,树加载没有问题。当我向字段添加
数据时,它会被解析到树中,但作为“原始”对象而不是模型实例。我的方法有两个问题
关联的名称不应为“数据”,否则记录根本无法加载
关联的primaryKey必须设置正确,在我的例子中,“分支”
是正确的
请注意,DataRecord没有名为treenode\u id的字段-因此您的hasMany关联不完整。有关更多信息,请参阅。作为解决此问题的第一步,请注意,DataRecord
没有名为treenode\u id的字段-因此您的hasMany关联不完整。有关更多信息,请参阅。DataRecord
解决此问题后,我看到了它primaryKey:'branch'
它起作用了。而且我在名称
上有一个错误,它不应该是数据
是的,在设置名称之后,记录再次被加载,在设置primaryKey之后,它们被解析的数据填充。
DataRecord:
{
extend: 'Ext.data.Model',
fields: [
{ name: 'branch' , type: 'string'},
{ name: 'primnav', type: 'string' },
{ name: 'X' , type: 'int' },
{ name: 'Y' , type: 'int' }
]
}