2015-07-02 34 views
8

Bazı verilere bağlı olarak bazı düğümleri ve kenarları gizleme veya gösterme gereksinimim var. Visjs'in verilerini geçerek bunu başarabilirim, ancak bir gizleme veya hareketsiz kaldığında her zaman stabilizasyonu tetikler (mevcut verilerin üzerine yaz). Angularjs kullanarak visjelerin düğüm veya kenar özelliği nasıl güncellenir?

Ben, güncellemeler yapmaktadır ve add kullanarak doğrudan nodes değerini değiştirerek bir düğümü kaldırır this example, update & remove fonksiyonları bulundu. Bu dinamik stabilize olmadan bu işlemleri yapar, ama ben angularjs aynı şeyi denediğimde

org_nodes.update bir işlev değil şu hatayla karşılaşırsanız

Pasaj this example

kaynağından alınan

function addNode() { 
    var newId = (Math.random() * 1e7).toString(32); 
    nodes.add({id:newId, label:"I'm new!"}); 
    nodeIds.push(newId); 
} 

function changeNode1() { 
    var newColor = '#' + Math.floor((Math.random() * 255 * 255 * 255)).toString(16); 
    nodes.update([{id:1, color:{background:newColor}}]); 
} 

function removeRandomNode() { 
    var randomNodeId = nodeIds[Math.floor(Math.random() * nodeIds.length)]; 
    nodes.remove({id:randomNodeId}); 

    var index = nodeIds.indexOf(randomNodeId); 
    nodeIds.splice(index,1); 
} 

Bunu gösteren plunker numaramı inceleyin. Buradaki eksikliğim nedir? Not -

cevap

4

Kullanıyorum update'u ararken biraz kapalı görünüyorsunuz. Bu örneğe başvurulursa, update işlevi, new vis.DataSet olan bir bağımsız değişken geçirilmesini gerektirir. Bunun yerine basit bir dizi sağlıyorsunuz. $scope.agentClicked bizim vis.DataSet nesne başvurmak için bizim görüşmesinde değişiklik sağlar dahilinde Biz bu birkaç yolu yaklaşım, ancak bu tür

$scope.data = { 
    nodes: new vis.DataSet(org_nodes), 
    edges: edges 
}; 

olarak $scope.data bildirirken Şimdi bu yapmış olduğu Şimdi değişikliği yapmak sağlayabilirsiniz

$scope.agentClicked = function() { 
    $scope.data.nodes.update([ ... ]); 
} 

Plunker Link - güncellendi demo

İlgili konular