Я использую degre-d3, и у меня возникают проблемы с получением данных узла для щелкнутого узла. У меня есть событие при нажатии, но d3.select (это) не похоже, чтобы получить мне соответствующие данные (я хотел бы иметь данные имя узла, этикетки и дополнительный объект, если это возможноНажатие на узел в dagre-d3
app.controller "DashboardElementShowController", ($scope, DashboardElementIndexService) ->
init_app = ->
# Create a new directed graph
g = new dagreD3.Digraph()
g.addNode "bpitt",
label: "html Brad Pitt <b>test</b>"
g.addNode "hford",
label: "Harrison Ford"
g.addNode "lwilson",
label: "Luke Wilson"
g.addNode "kbacon",
label: "Kevin Bacon"
g.addEdge null, "bpitt", "kbacon",
g.addEdge null, "hford", "lwilson",
g.addEdge null, "lwilson", "kbacon",
renderer = new dagreD3.Renderer().edgeInterpolate("cardinal")
.edgeTension(0.8)
renderer.edgeInterpolate('linear');
renderer.run g, d3.select("svg g")
d3.select("svg g").on("click", (d, i, k) ->
console.log d3.select(this) # doesn't seem to have relevant info I need
)
init_app()
Edit.: 10.09.2014: Вот он говорит, что я должен переопределить метод renderer.drawNodes: https://github.com/cpettitt/dagre-d3/issues/67
Это код, указанный:
constructor:
@renderer.drawNodes @_drawNodes().bind @
_drawNodes: ->
oldDrawNodes = @renderer.drawNodes()
(graph, svg) ->
# catch drawed nodes
svgNodes = oldDrawNodes graph, svg
svgNodes.on 'click', (nodeId) -> console.log 'node clicked', nodeId
Я не знаю, как и где я должен переопределить с помощью этого кода. ..
Разница заключается в том, что обратный вызов выполняется для получения TitleText для ВСЕХ узлов сразу во время рендеринга, в то время как OP хочет иметь доступ к данным для щелкнули узел при щелчке время. – Crashthatch