Я расширяю элемент управления удалением mxgraph пример, чтобы добавить элементы управления удалением в узлы которые генерируются динамически на моем графике. Исходный код примера доступен здесь
Проблема в этой части кода -
// Overridden to add an additional control to the state at creation time
mxCellRendererCreateControl = mxCellRenderer.prototype.createControl;
mxCellRenderer.prototype.createControl = function(state)
{
mxCellRendererCreateControl.apply(this, arguments);
var graph = state.view.graph;
if (graph.getModel().isVertex(state.cell))
{
if (state.deleteControl == null)
mxCellRendererCreateControl.apply внутри переопределенного обратного вызова createControl, по-видимому, работает должным образом (вызывает исходную функцию перед созданием дополнительных элементов управления) с начальным состоянием графа при загрузке. Но как только я динамически добавляю узлы в граф и обратный вызов вызывается с помощью проверки/перерисовки mxgraph, управление переходит в бесконечный цикл, где функция «применить» в основном продолжает вызывать себя (т. е. обратный вызов).
Я немного не в курсе, потому что при отладке контекст (это) выглядит нормально, но я не могу понять, почему вместо вызова метода прототипа он просто продолжает вызывать переопределенную функцию в цикле. Что я делаю не так?
mxCellRendererCreateControl
и почему вы переопределяете и используетеprototype
? - person Ghassen Louhaichi   schedule 28.09.2017