2016-09-07 5 views
1

Я использую разные коллекции ребер, которые переключаются на CY на основе пользовательских взаимодействий, поэтому в каждый момент только один из этих коллекций находится в экземпляре CY. Мне нужно создать новые элементы в одной из этих «удаленных» коллекций непосредственно из данных объекта JS, и я не могу понять, как это сделать, кроме создания новых ребер с помощью cy.add (eleObjs), а затем удалить эти элементы из CY.Добавить eleObjs в коллекцию

Есть ли способ создания элементов CY из объекта JS (eleObj), кроме как с cy.add (eleObj)? Я попробовал eles.add (eleObj), но он не работает.

Я думал о создании отдельного экземпляра CY только для этой цели, но я не знаю, является ли это лучшим решением, и одна из проблем заключается в том, что в этом случае мне также потребуется синхронизировать узлы между экземплярами CY, чтобы чтобы иметь возможность создавать новые ребра.

ответ

1

Вы можете думать о том, что удаленный узел является аналогом файла, находящегося в корзине в вашей файловой системе. Вы не будете создавать удаленные узлы, так же, как вы не будете создавать новые файлы в корзине.

Добавьте свои элементы в график, как обычно. Вы можете установить класс с display: none на элементы, которые вы не хотите отображать. Вы также можете выполнять макеты только для подмножества графика, который отображается через eles.layout().

Пояснение: Отделимые элементы, которые еще не связаны с графиком, несовместимы с моделью. И создание элементов без связанного графика не принесет вам каких-либо выигрышей в производительности - поскольку элементы не будут содержать ничего больше, чем у JSON, который у вас уже был. И он не купит вам никаких удобств - так как вы ничего не могли сделать с элементами, а cy.add(elesJson) так же удобно, как и cy.add(preexistingEles).

+0

Спасибо Макс! Я понимаю это сейчас и использую класс с дисплеем: никто не решил мою проблему. – Haba

Смежные вопросы