我使用基于用户交互在CY中切换的不同边集合,因此在每个时刻,这些集合中只有一个在CY实例中。我需要在其中一个" remote"中创建新元素。直接来自JS对象数据的集合,除了用cy.add(eleObjs)创建新边,然后从CY中删除这些元素之外,我无法知道如何做到这一点。
有没有办法如何从JS对象(eleObj)创建CY元素而不是cy.add(eleObj)?我试过eles.add(eleObj),但它没有用。
我考虑过仅为此目的创建一个单独的CY实例,但我不知道它是否是最佳解决方案,其中一个问题是在这种情况下我还需要同步节点在CY实例之间,以便能够创建新的边缘。
答案 0 :(得分:1)
您可以将删除的节点视为与文件系统中的垃圾箱中的文件类似。您不会创建已删除的节点,就像您不会在废纸篓中创建新文件一样。
像往常一样将元素添加到图表中。您可以在不希望显示的元素上设置display: none
的类。您还可以仅在通过eles.layout()
可见的图表子集上执行布局。
说明:已分离但尚未与图形关联的元素与模型不一致。创建没有相关图形的元素不会给你带来任何性能提升 - 因为元素不会比你已经拥有的JSON更多。并且它不会给你带来任何便利 - 因为你无法对元素做任何事情,而cy.add( elesJson )
和cy.add( preexistingEles )
一样方便。