【问题标题】:How do I get node data by clicking a node in the diagram?如何通过单击图中的节点来获取节点数据?
【发布时间】:2021-04-11 05:43:12
【问题描述】:

我正在 GoJS 中制作动态基因图,我希望能够单击父节点,单击 HTML 中添加子节点并将其链接到父节点的按钮。为此,我需要能够通过在图表中单击父节点来获取密钥。

我在想我必须使用addDiagramListener() 函数,但我认为该函数仅用于更改节点的外观,例如单击时更改节点的颜色,而不是用于获取节点数据。

【问题讨论】:

    标签: javascript gojs


    【解决方案1】:

    您有多种选择。最常见的两个是实现"ChangedSelection" Diagram 事件,查看所有选定节点(或仅第一个:myDiagram.selection.first())并检查node.data 或仅node.key(这是@987654327 的快捷方式@)

    并通过在您的节点模板上设置selectionChanged 在每个单独的节点上执行类似的操作。每次选择或取消选择给定节点时都会调用此函数。

    这里有一个selectionChanged 的简单实例:https://gojs.net/latest/intro/selection.html#SelectionAppearanceChanges

    【讨论】:

    • 非常感谢。我这样做了:`getNodeKey = function (diagram){ diagram.addDiagramListener("ChangedSelection", function (event){ node = diagram.selection.first(); console.log(node.key); }) }` 这行得通但我没有使用我在函数中使用的event 值。这有必要吗?因为在大多数示例中,我已经看到事件参数需要存在。
    • 您不需要使用该参数。但是,它引用了可能有用的东西,为了安全起见,您可以使用 event.diagram 使代码更加通用。
    猜你喜欢
    • 2020-08-30
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多