Невозможно удалить ссылки из графика, направленного силой D3 со стрелками


Я пытаюсь создать граф, в котором узлы можно динамически добавлять и удалять. Новые независимые узлы могут быть созданы с помощью кнопки "Добавить узел", а затем я могу создать дочерние узлы с помощью контекстного меню правой кнопкой мыши "создать дочерний узел" . Узлы можно удалить, используя опцию Удалить узел.

У меня здесь есть рабочая скрипка, в которой ссылки не имеют стрелок для представления направления: http://jsfiddle.net/ztvcb2a4/

Я хочу точно такого же поведения, но с стрелки, представляющие направление от родительского узла к дочернему узлу. Когда я пытаюсь изменить его, добавляя стрелки, я следую точно такой же логике для выбора входа и выхода, но я продолжаю получать эту ошибку в строке с выходом.удалить(). Может быть, я упускаю здесь что-то, чего не могу понять. "Uncaught TypeError: undefined не является функцией"

Переменная Path определяется вне функции update как глобальная переменная.

var path = svg.append("svg:g").selectAll("path");        

Это вход и выход код выбора ссылок внутри функции update ():

path = path.data(force.links(), function(d) { return d.source.id + "-" + d.target.id; })        
path.enter().append("svg:path")
.attr("class", "link")
.attr("marker-end", "url(#end)");

path.exit.remove(); 

Модифицированная скрипка: http://jsfiddle.net/427pzrsc/

1 2

1 ответ:

Вам нужно использовать path.exit().remove();. Вы пропускаете скобку на exit.