1

Extjs 4.1で RESTサービスを使用して単純なツリーを作成しています。
からparentIdプロパティ名を変更するにはどうすればよいExt.data.NodeInterfaceですか?

これが私のモデルです:

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.
    }
}
4

1 に答える 1

2

それのように見えません。ParentId は、すべてのツリー ノードがサブクラス化する NodeInterface クラスの一部です。ここにリストされている 'decorate' 静的メソッドをオーバーライドする必要があります: http://docs.sencha.com/ext-js/4-1/source/NodeInterface.html#Ext-data-NodeInterface また、updateInfo メソッドもあります。 parentId プロパティを設定しようとするノードの移動後に呼び出されるため、これも変更する必要があります。

于 2012-06-04T05:53:31.737 に答える