Saltar al contenido

Red Vis.js: ¿cómo agregar un nodo al hacer clic dentro del lienzo?

Después de mucho batallar hemos encontrado la respuesta de esta incógnita que muchos usuarios de nuestro espacio presentan. Si quieres aportar algún detalle no dudes en aportar tu información.

Solución:

Puede agregar nodos dinámicamente usando el update metodo de la vis.DataSet clase. Consulte esta página de documentación para obtener más información: https://visjs.github.io/vis-data/data/dataset.html

Ok, aquí está mi implementación actual:

...
data = ...
nodes = new vis.DataSet(data.nodes); // make nodes manipulatable
data =  nodes:nodes, edges:edges ;
...
var network = new vis.Network(container, data, options);

network.on('click',function(params)
    if((params.nodes.length == 0) && (params.edges.length == 0)) 
        var updatedIds = nodes.add([
            label:'new',
            x:params.pointer.canvas.x,
            y:params.pointer.canvas.y
        ]);
        network.selectNodes([updatedIds[0]]);
        network.editNode();
    
)

No es perfecto ya que en realidad crea un nodo y comienza a editarlo, por lo que si cancelamos la edición, el nodo permanece. También crea sombras no deseadas de los nodos. Pero ya es un prototipo de trabajo que es suficiente para empezar.

Al final de la página puedes encontrar las notas de otros creadores, tú todavía tienes la opción de mostrar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *