我在 Extjs 4.1 上创建了带休息服务的简单树
如何从Ext.data.NodeInterface
更改parentId属性名称?
这是我的模特:
Ext.define('Buildlife.model.Folder', {
extend:'Ext.data.Model', idProperty:'id',
fields:[
{name:'id', type:'auto',defaultValue:null},
{name:'name', type:'auto'},
{name:'files',type:'auto',convert:function(val,rec){
for(var i in val){
var each = val[i];
Ext.apply(each,{
name: each.fileName,
leaf:true,
iconCls:'x-event-icon'
});
rec.appendChild(rec.createNode(each));
}
return val;
},defaultValue:null}
],
proxy:{
type:'rest',
url:GlobalConf.contextPath+'/rest/folder',
reader:{type:'json', root:'children', successProperty:'success'},
writer:{type:'json', root:'children', writeAllFields:false},
listeners:{exception:GlobalConf.storeExceptionHandler}
}
});
当我添加子节点时,它将父节点作为parentId发送。
{
"children": {
"name": "test",
"parentId": "4fc742f344aeac0cc87e6afa",
"leaf ": false
//etc.
}
}
是否可以将其更改为customProperty,例如:
{
"children": {
"name": "test",
"customProperty": "4fc742f344aeac0cc87e6afa",
"leaf ": false
//etc.
}
}
答案 0 :(得分:2)
看起来不像。 ParentId是NodeInterface类的一部分,每个树节点都是子类。您必须覆盖此处列出的'decorate'静态方法: http://docs.sencha.com/ext-js/4-1/source/NodeInterface.html#Ext-data-NodeInterface 还有一个updateInfo方法,在尝试设置parentId属性的节点移动后调用 - 因此也必须更改。