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.