具有相同源元素的多个不相关的图形实例?
Multiple unrelated graph instances with the same source elements?
是否可以有多个不相关但共享相同源元素的 cytoscape 图实例?
这是我正在尝试做的一个例子:https://jsfiddle.net/fa8hbdnh/
var elements = [
{ data: { id: 'n1'}, position: {x:100, y: 100}},
{ data: { id: 'n2'}, position: {x:150, y :150}},
//--->Edges--->
{ data: {id: 'e1', source: 'n1', target: 'n2'}},
];
var graph1 = cytoscape({
headless: true,
elements: elements
});
var graph2 = cytoscape({
headless: true,
elements: elements
});
graph1.elements()[0].data('foo',100); // Only changing graph1...
console.log(graph2.elements()[0].data('foo')); // ...however graph2 is also modified
(这需要 cytoscape 库 - http://js.cytoscape.org/)
如您所见,我更改了图 1,但图 2 也受到了影响。有没有一种方法可以在一个实例上保存数据元素而不影响其他实例?
Cytoscape.js 只接受你传递给它的内容。它不会对您的 JSON 做出任何假设,也不会复制数据——因为那样会减慢 >=90% 的用例。
在传入之前复制您的 JSON 或将集合从第一个实例传递到后续实例。如文档中所述,集合总是从一个实例复制到另一个实例,因为这是传递集合有意义的唯一方式。
是否可以有多个不相关但共享相同源元素的 cytoscape 图实例?
这是我正在尝试做的一个例子:https://jsfiddle.net/fa8hbdnh/
var elements = [
{ data: { id: 'n1'}, position: {x:100, y: 100}},
{ data: { id: 'n2'}, position: {x:150, y :150}},
//--->Edges--->
{ data: {id: 'e1', source: 'n1', target: 'n2'}},
];
var graph1 = cytoscape({
headless: true,
elements: elements
});
var graph2 = cytoscape({
headless: true,
elements: elements
});
graph1.elements()[0].data('foo',100); // Only changing graph1...
console.log(graph2.elements()[0].data('foo')); // ...however graph2 is also modified
(这需要 cytoscape 库 - http://js.cytoscape.org/)
如您所见,我更改了图 1,但图 2 也受到了影响。有没有一种方法可以在一个实例上保存数据元素而不影响其他实例?
Cytoscape.js 只接受你传递给它的内容。它不会对您的 JSON 做出任何假设,也不会复制数据——因为那样会减慢 >=90% 的用例。
在传入之前复制您的 JSON 或将集合从第一个实例传递到后续实例。如文档中所述,集合总是从一个实例复制到另一个实例,因为这是传递集合有意义的唯一方式。