Cytoscape不恢复元素

时间:2017-12-05 06:39:06

标签: javascript cytoscape.js

根据文档(http://js.cytoscape.org/#eles.remove / http://js.cytoscape.org/#eles.restore),可以使用eles.restore()方法从图表中恢复以前删除的元素。

但是我无法恢复此外观中的所有元素?

applyElementFilters = () => {
    const excluded = [1, 2, 3];

    // Restore all elements first, this apparently does nothing
    this.cy.elements().restore();

    if (excluded && excluded.length > 0) {
        const excludedElements = this.cy
            .elements()
            .filter(element => excluded.includes(element.data("id")));

        this.cy.remove(excludedElements);
    }
};

1 个答案:

答案 0 :(得分:1)

如文档中所述,您已保存removed元素的引用以进行还原。

// remove selected elements
var eles = cy.$(':selected').remove();

// ... then some time later put them back
eles.restore();

在您通过执行此操作删除元素的情况下

this.cy.elements().restore();

您可以将它们保存在变量中,也可以保存在this下面

this.__removedElements = this.cy.elements().remove();
// or
var removedElements; // global variable
removedElements = this.cy.elements().remove();

然后你可以恢复它们,如下所示

this.__removedElements.restore()
// or
removedElements.restore()