2016-06-01 12 views
0

jstree内の子ノードを他の子ノードを含むサブツリーに置き換えるにはどうすればよいですか?jstree内のサブツリーで1つのノードを置き換えます。

ルートノードdbに子ノードcfgが含まれています。そのcfgノードを選択すると、要求に応じてロードされたサブツリーと置き換える必要があります。 https://192.168.1.1/db/

getJsonは私にこのJSONオブジェクトを与える:https://192.168.1.1/db/cfg/

{ 
"class": "Container", 
"name": "db", 
"nb": 6, 
"objects": [{ 
    "name": "alarms" 
}, { 
    "name": "cfg" 
}, { 
    "name": "commands" 
}, { 
    "name": "csrs" 
}, { 
    "name": "downloads" 
}, { 
    "name": "stats" 
}], 
"pub": false} 

getJsonが私にこのJSONオブジェクトを与える:

{ 
"class": "Container", 
"name": "cfg", 
"nb": 6, 
"objects": [{ 
    "name": "device" 
}, { 
    "name": "dm" 
}, { 
    "name": "flows" 
}, { 
    "name": "ppp" 
}, { 
    "name": "properties" 
}, { 
    "name": "services" 
}], 
"pub": false 

}

私はすでにこのような何かを試してみました:

.bind("select_node.jstree", function (evt, data) { 
    if(data.event) { 

    var node = $('#jstree_demo').jstree(true).get_node(data.node.id) 

    $.getJSON('https://192.168.1.1/db/' + data.node.text, function(jsondata) { 

    var myJson = replace_inline(jsondata) 

    $('#jstree_demo').jstree(true).settings.core.data = myJson; 
    $('#jstree_demo').jstree(true).refresh(true); 
    }); 
} 

しかし、ここではホールツリーが私のサブツリーに置き換えられます。

答えて

0

私の解決策は、新しいノードを作成してそれを祖父母ノードに追加し、親ノードを削除することです。私はjstreeのソートプラグインもenabliedしました。サブツリーが削除されたものの位置を持つように。

.bind("select_node.jstree", function (evt, data) { 
    if(data.event) { 

    var node = $('#jstree_demo').jstree(true).get_node(data.node.id) 

    $.getJSON('https://192.168.1.1/db/' + data.node.text, function(jsondata) { 

    var myJson = replace_inline(jsondata) 

    var position = 'inside'; 
    var parent = $('#jstree_demo').jstree('get_selected'); 
    var grandparent= data.instance.get_node(data.node.parent) 

    var newNode = { state: "open", myJson }; 

    $('#jstree_demo').jstree().create_node(grandparent , myJson, "last", 
           function(){          
              //alert("create node done"); 
             }); 
    $("#jstree_demo").jstree(true).delete_node(node); 
    }); 
} 
関連する問題