奇怪的是我在vue项目中使用vis-network.js,并且在动态添加边缘时图形消失了。
但是动态更新和删除没有。
然后,我写了一个测试页面,从https://visjs.github.io/vis-network/standalone/umd/vis-network.min.js引入了vis-network.js,然后发现这没问题!
那么从NPM下载的可见网络是否有问题?
有人可以帮我吗?
我如何使用:
npm install vis-network
import vis from 'vis-network/dist/vis-network'
Vue.prototype.$vis = vis;
var nodes = new this.$vis.DataSet([
{id: 1, label: 'Node 1'},
{id: 2, label: 'Node 2'},
{id: 3, label: 'Node 3'},
{id: 4, label: 'Node 4'},
{id: 5, label: 'Node 5'}
]);
var edges = new this.$vis.DataSet([
{from: 1, to: 3},
{from: 1, to: 2},
{from: 2, to: 4},
{from: 2, to: 5},
{from: 3, to: 3}
]);
var data = {
nodes: nodes,
edges: edges
};
var container = document.getElementById("id");
var options = {};
this.graph = new this.$vis.Network(container, data, options);
nodes.add([{id:8, label:"Node 8"}]); // normal
edges.add([{from:1 ,to:5}]); // Graphics disappear
我也花了一整天的时间来解决这个确切的问题,但最后,我终于屈服于https://github.com/almende/vis/issues/2567
该问题有非常详尽的解释,但是TL; DR:vis的构建方式如果将网络放入vue组件数据中就根本行不通。
但是,它可以将边缘和节点数据集放入组件数据中,因此请保留对它们的引用,并在不将其附加到vue组件的情况下初始化网络。