2014-09-09 2 views
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() 

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 

Я не знаю, как и где я должен переопределить с помощью этого кода. ..

ответ

0

Этот пример из их Wiki может помочь http://cpettitt.github.io/project/dagre-d3/latest/demo/hover.html

+1

Разница заключается в том, что обратный вызов выполняется для получения TitleText для ВСЕХ узлов сразу во время рендеринга, в то время как OP хочет иметь доступ к данным для щелкнули узел при щелчке время. – Crashthatch

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