2015-08-27 1 views
0

En utilisant le NetChart de zoomcharts (1.5.1), il semble que addData() ne fonctionne que pour navigation = showall. Dans le cas où j'essaie d'utiliser navigation = manual, il faut initialNodes.comment faire des nœuds ajoutés de manière incrémentielle persistante dans la navigation manuelle

Y a-t-il un moyen initialNodes d'être automatiquement rempli avec des données existantes (qui ont été ajoutées de manière incrémentielle)? La raison pour laquelle je veux cela est parce que je veux charger un ensemble spécifique de noeuds/liens en utilisant navigation = showall puis le changer en navigation = manual afin que l'utilisateur puisse cliquer pour voir tous les voisins

Fondamentalement, l'exemple suivant montre ce cas. .. node 'f-1' est écrasé par initialNodes de '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> 

Répondre

0

trouvé de solution par l'utilisation de doubleclick:

<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>