Как сделать добавленные узлы постоянными при ручной навигации

С использованием NetChart зум-чартов (1.5.1), кажется, что addData() работает только для navigation = showall, В случае, если я пытаюсь использовать navigation = manual, это требует initialNodes,

Есть ли способ initialNodes автоматически заполняется существующими данными (которые были добавлены постепенно)? Причина, по которой я этого хочу, заключается в том, что я хочу изначально загрузить определенный набор узлов / ссылок, используя navigation = showall а затем измените его на navigation = manual так что пользователь может нажать, чтобы увидеть всех соседей

В основном, следующий пример показывает этот случай... узел 'f-1' перезаписывается начальными узлами 'm-1'.

<script>
  var t = new NetChart({
        container: document.getElementById("demo"),
        area: { height: 350 }

    });
    t.addData({nodes: [{loaded: true,id: "f-1",name: "Anna"},{id: "m-1",name: "Joe"}],links: [{to: "f-1",from: "m-1",id: "l01",type: "friend"}]});
    t.updateSettings({
        data:
        {
            preloadNodeLinks:true,
            dataFunction: function(nodeList, success, error){
                //return just the first node, net chart will ask for more
                jQuery.ajax({
                    url:"/dvsl/data/net-chart/friend-net/"+nodeList[0]+".json",
                    success: success,
                    error: error});
            }
        },
        navigation:{
            initialNodes:["m-1"],
            mode:"manual"
        }

    });


</script>

1 ответ

Найден обходной путь с помощью двойного клика:

<script>
    var t = new NetChart({
      container: document.getElementById("demo"),
      area: {
          height: 350
      },
      events:{
            onDoubleClick: dclickEvent
        }
  });
  t.addData({nodes: [{loaded: true,id: "f-1",name: "Anna"},{id: "m-1",name: "Joe"}],links: [{to: "f-1",from: "m-1",id: "l01",type: "friend"}]});


    function dclickEvent(event){
        if (!$("#click")[0].checked) return;
        console.log('event.clickNode', event.clickNode);
        if (event.clickNode) {
              jQuery.ajax({
                      url: "/dvsl/data/net-chart/friend-net/" + event.clickNode.id + ".json",
                      success: function(data) {
                          console.log('test-foo-data', data);
                          t.addData(data);
                      }
                  })

        }
    }


</script>
Другие вопросы по тегам