2016-09-07 124 views
1

我使用基于用户交互在CY中切换的不同边集合,因此在每个时刻只有其中一个集合处于CY实例中。我需要直接从JS对象数据中直接在这个“远程”集合之一中创建新元素,除了用cy.add(eleObjs)创建新边线,然后从CY中删除这些元素之外,我无法确定如何去做。将eleObjs添加到集合

有没有办法如何从JS对象(eleObj)而不是使用cy.add(eleObj)创建CY元素?我试过eles.add(eleObj),但它不起作用。

我想创建一个单独的CY实例只是为了这个目的,但我不知道这是否是最好的解决方案,其中一个问题是在这种情况下,我还需要同步CY实例之间的节点能够创造新的边缘。

回答

1

您可以考虑将已删除的节点视为与您文件系统中垃圾桶中的文件类似。您不会创建已删除的节点,就像您不会在垃圾桶中创建新文件一样。

像往常一样将您的元素添加到图中。你可以在你不想显示的元素上设置display: none。您也可以仅对通过eles.layout()可见的图表的子集执行布局。

说明:分离出的尚未与图形关联的元素与模型不一致。创建没有关联图的元素不会为您带来任何性能提升 - 因为这些元素不会超过您已拥有的JSON。它不会为你带来任何便利 - 因为你无法做任何事情,cy.add(elesJson)就像cy.add(preexistingEles)一样方便。

+0

谢谢Max!我现在明白了,并且使用class和display:没有解决我的问题。 – Haba