2015-07-02 6 views
8

Ho un requisito per nascondere o mostrare alcuni nodi e spigoli a seconda di alcuni dati. Posso ottenerlo attraversando i dati di visjs, ma questo attiverà la stabilizzazione ogni volta che uno nasconde o mostra (questo sovrascrive i dati esistenti).Come aggiornare un nodo o una proprietà di bordo di visjs usando angularjs?

ho trovato this example che aggiunge, aggiornamenti e rimuove un nodo modificando direttamente nodes valore utilizzando add, update & remove funzioni. Questo fa in modo dinamico queste operazioni senza stabilizzante, ma quando provo la stessa cosa in AngularJS I rilevare il seguente errore

org_nodes.update non è una funzione

frammento tratto da fonte di this example

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); 
} 

Controllare il mio plunker che dimostra questo. Che cosa mi manca qui? Nota - Sto usando angular-visjs

risposta

4

Sembra leggermente fuori quando si chiama update. Facendo riferimento a questo esempio, la funzione update richiede un argomento passato che sia un new vis.DataSet. Stai invece fornendo un array semplice. Siamo in grado di affrontare questo un paio di modi, ma cerchiamo di fare il cambio quando dichiara $scope.data come tale

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

Ora che abbiamo fatto questo, entro $scope.agentClicked lascia modificare la nostra chiamata per fare riferimento il nostro oggetto vis.DataSet

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

Plunker Link - demo aggiornata

Problemi correlati