我在 Extjs 4.1 上用 rest 服务创建了简单的树。
如何从 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.
}
}
最佳答案
看起来不像。 ParentId 是每个树节点子类的 NodeInterface 类的一部分。您将不得不覆盖此处列出的“装饰”静态方法: http://docs.sencha.com/ext-js/4-1/source/NodeInterface.html#Ext-data-NodeInterface 还有一个 updateInfo 方法在节点移动后调用,该方法将尝试设置 parentId 属性 - 因此也必须更改。
关于javascript - 如何更改 Extjs NodeInterface 上的 parentId 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10875934/