Подтвердить что ты не робот

Как связать данные с node в jstree?

$("#ifTree").jstree({
            "plugins" : ["themes","html_data","ui","crrm"], 
            "themes" : {
                    "theme" : "apple",
                    "dots" : true,
                    "icons" : false
            }           
    });

    $("#createIf_c").click(function () { 
        $("#ifTree").jstree("create",null,"inside",  { "data" :{ title:"if",value:"expression"} },
                function() {}, true);
    });
$("#display").click(function(){
            var a = $.jstree._focused().get_selected();
            alert(a.attr("value"));
    });

В этом вышеприведенном коде я создал jstree и нажав кнопку с id #createIf_c. Я добавляю node с заголовком "if", но поскольку мне нужно, чтобы некоторые данные были связаны с этим node Я добавил к нему дополнительные атрибуты при создании node. Затем, когда я пытаюсь получить доступ к этим связанным данным, здесь "значение" затем я получаю предупреждение "undefined". Итак, есть ли другой способ связывания данных с node? или другим способом доступа к связанным данным node является jstree?.. пожалуйста, помогите....

4b9b3361

Ответ 1

Самый простой способ сделать это - это как добавить атрибут к элементу html i.e.,

    var node = $.jstree._focused().get_selected(); //get the selected node or which ever you want the data to be associated with
    node.attr("expression","xyz"); //add an attribute (name,value) here, name-expression and value-xyz

Ответ 2

Plz обратитесь к автору answer.

Вы можете редактировать информацию с помощью $('#tree').jstree(true).get_node("some_node_id") и размещать дополнительные данные как json на $('#tree').jstree(true).get_json("some_node_id").

You can add anything you want to the data object. Like:
{ "id" : "some_node_id" "text" : "some node", ... "data" : { "foo" : "bar", "example_array" : ["1",2,true], "obj" : {"asdf":"asdf1"}  } ...

And later on you can retrieve it like so:
$('#tree').jstree(true).get_node("some_node_id").data.obj.asdf; // this would equal "asdf1"
$('#tree').jstree(true).get_node("some_node_id").data.example_array; // this would be an array: ["1",2,true]

Setting other values is just as simple - you are working with a normal object:
$('#tree').jstree(true).get_node("some_node_id").data.obj.asdf = "some other value";
$('#tree').jstree(true).get_node("some_node_id").data.example_array = "I do not want this an array anymore";
$('#tree').jstree(true).get_node("some_node_id").data.obj.new_property = 1024;

Ответ 3

вы можете поместить свои дополнительные данные в JSON node.data , это не документировано
enter image description here

Ответ 4

Правильный способ связывания данных с node выглядит следующим образом:

Если вы добавляете больше данных, то есть атрибут, то упомянутые все атрибуты (имя, значение) в "attr" свойство

" attr": {attributeName1: "attributeValue1", attributeName2: "attributeValue2"......}

 $("#createIf_c").click(function () { 
 $("#ifTree").jstree("create",null,"inside",
   { "data" : "testNodeName", 
      "attr": { title:"if",value:"expression"} },  function() {}, true);
});

Ответ 5

Связать данные из определения HTML:

Если вы хотите связать данные с помощью HTML-определения дерева, используйте:

<li id="treesiteadmin-serverStatus" data-ic='{"form":"site.serverstatus"}' data-jstree='{"icon":"glyphicons glyphicons-server"}'>Stato del server</li>

Свойством "данных" в текущем выбранном node будет:

{"jstree":{"icon":"glyphicons glyphicons-server"},"ic":{"form":"site.serverstatus"}}

См. результат - свойство "data" выбранного node