2015-02-18 3 views
2

просто играл с vis.js в течение дня и прошел через все документы и примеры. Я пытаюсь найти лучший способ обновить данные узла и края с помощью событий click. Например. скажем, у меня есть один узел без краев, затем я нажимаю его, чтобы добавить 3 дочерних узла. Может ли эксперт vis.js предложить лучший способ сделать это?vis.js: Как развернуть/свернуть узлы щелчком мыши

Ожидаемое До:

nodes = [{id: 1, label:"Parent Node"} ]; 
edges = [ ]; 

Ожидаемое После нажатия на ID 1:

nodes = [{id: 1, label:"Parent Node"}, 
{id: 2, label:"Child Node1"}, 
{id: 3, label:"Child Node2"}, 
{id: 4, label:"Child Node3"} ]; 
edges = [ {from: 1, to: 2}, 
      {from: 1, to: 3}, 
      {from: 1, to: 4} ]; 

Тогда я хочу, чтобы свернуть и вернуться только родительский узел ж/без детей. Я получаю, как делать обработку событий, это обновление и перерисовка узлов и ребер, о которых я не уверен.

+0

вы нашли способ сделать this.Need помочь! – Shashank

ответ

2

Как только я разместил, я понял свою ошибку, не используя динамический DataSet(). Так оно и должно быть, как это:

var nodes = new vis.DataSet([{id: 1, label:"Parent Node"}]); 
var edges = new vis.DataSet([]); 

Затем вы можете обновить следующим образом:

nodes.update({id: 2, label:"Child Node1"}); 
nodes.update({id: 3, label:"Child Node2"}); 
nodes.update({id: 4, label:"Child Node3"}); 

edges.update({from: 1, to: 2}); 
edges.update({from: 1, to: 3}); 
edges.update({from: 1, to: 4}); 
+0

Как вы разрушаете узел? Удаление из сети/скрытие или что-то еще? –

+0

@RohitTotala Это довольно старый, я не помню. Я перешел на D3 вместо этого, с ним стало намного легче работать. – tkelly

+0

Хорошо, я сделал это, сделав рекурсивный вызов, обновляя (скрывая) дочерние узлы и ребра в сети. В эти выходные я сделаю скрипку для SO. Благодарю. У D3 есть хорошие возможности для иерархических сетей/деревьев, я думаю. –

 Смежные вопросы

  • Нет связанных вопросов^_^