2016-11-23 8 views
0

私は、自分自身の間の関係を持つデータベースに格納されたコミュニティの親戚のセットを持っています。vis.jsを使用してサーバ側からデータを取得

私は人に基づいて、この1つの欠点をすべて取り除き、vis.jsを使用してネットワークグラフに表現しようとしています。

すべてのリクエストはajaxを使用して行われるので、ノードとサーブレットからエッジを取得する方法が必要です。私はドキュメントをチェックして、それがローカルパスに格納されてロードされているjsonファイルを作成する唯一の方法だと思われますが、私にはそれが数十人の人々によって使用されるサイトのために非常に古風です。ここで

コードは次のとおりです。

var network = null; 
var layoutMethod = "directed"; 

function destroy() { 
    if (network !== null) { 
    network.destroy(); 
    network = null; 
    } 
} 

function draw() { 
    destroy(); 

    // randomly create some nodes and edges\n" + 
var nodes = <%= request.getParameter("nodes") %>; 
var edges = <%= request.getParameter("edges") %>; 

    // create a network\n" + 

var data = { 
    nodes: nodes, 
    edges: edges 
}; 
// create a network 
var container = document.getElementById('mynetwork'); 
var options = { 

}; 
var network = new vis.Network(container, data, options); 
} 

だから、毎回あなたは人を選ぶ、アクションがトリガされ、ネットワークを更新する必要があります。

$('#subscribe').click(function()  
{ 
    $('#descripcion').find('span').remove().end(); 
    $('#descripcion').find('br').remove().end(); 


    $.get("Almacen", { valor: "C",email:$('#email').val()},function(data){ 
    $("#descripcion").append(data); 

} 
      ); 
    draw(); 

}); 

それを行うための方法の任意のアイデアを? ありがとう

答えて

0

ネットワークのデータを取得するトピックと、ネットワークを更新するトピックが混在しているようです。あなたがajax経由であなたのデータをつかむとき、あなたはいくつかのJavaScriptのデータ構造でそれを保存し、このデータに基づいてvis.jsネットワークを更新する必要があります。 vis.jsネットワークを更新するには、 'nodes'と 'edges' visDataSetsで 'update'メソッドを使用できます。 つまり、

nodes.update([node1、node2、node3]);

又は

edges.update([EDGE1、エッジ2、edge3])。

ここで、ノード 'i'とエッジ 'i'はノード/エッジへの更新(または追加)を記述するオブジェクトで、常に 'id'フィールドを含むため、vis.jsは追加/更新するグラフ。

例: nodes.update([{id:324、title: "私のノードの新しいタイトル"}、{id:456、hidden:true}]); この例では、ノード324のタイトルを変更し、ノード456を非表示にします(ノードがまだネットワークに存在しない場合は、実際にノードを作成します)。

関連する問題