1
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()
편집을. : 2014년 9월 10일 :
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
내가 어디에서 어떻게 내가이 코드를 오버라이드 (override) 할 필요가 확실하지 않다 : https://github.com/cpettitt/dagre-d3/issues/67
이 지정한 코드는 다음과 같습니다 은 여기 내가 renderer.drawNodes 메소드를 오버라이드 (override) 할 필요가 말한다. ..
의 차이는 영업 이익은 클릭에서 클릭 한 노드의 데이터에 액세스하려는 반면, 콜백, 렌더링 시간을 즉시 모든 노드은 titleText을 생산하는이 실행되는 것입니다 시각. – Crashthatch