【问题标题】:GoJS Html Context Menu - Get SelectedNodeGoJS Html 上下文菜单 - 获取 SelectedNode
【发布时间】:2019-11-15 16:02:14
【问题描述】:

当我使用 HTML 菜单上下文右键单击节点时,我试图获取选定的节点。

HTML 代码:

<li id="detail" onclick="cxcommand(event, 'detail')"><a href="#">Details</a></li>
<li id="disconnect" onclick="cxcommand(event, 'disconnect')"><a href="#">Disconnect</a></li>
<li id="remove" onclick="cxcommand(event, 'remove')"><a href="#">Remove</a></li>

JS代码:

// This is the general menu command handler, parameterized by the name of the command.
function cxcommand(event, val) {

    // var selectedNode = myDiagram.findPartAt(myDiagram.toolManager.contextMenuTool.currentObject);

    myDiagram.currentTool.stopTool();
}

如何从 HTML 上下文菜单中获取选定的节点?

【问题讨论】:

    标签: gojs


    【解决方案1】:

    正如您在示例 https://gojs.net/latest/samples/customContextMenu.html 中看到的那样,通过单击上下文菜单项调用的 cxcommand 函数通过全局变量获取对 图表 的引用,在这种情况下myDiagram:

        function cxcommand(event, val) {
          if (val === undefined) val = event.currentTarget.id;
          var diagram = myDiagram;
          switch (val) {
            case "cut": diagram.commandHandler.cutSelection(); break;
            . . .
    

    或者,您可以让onclick 调用的函数成为一个保持对图表的引用的闭包。

    获得图表后,Diagram.selection 属性将为您获取当前选定的部件。

    【讨论】:

      【解决方案2】:

      我能够通过调用 myDiagram.selection.first() 来获取对象。感谢 GoJS 支持团队。

       function cxcommand(event, val) {     
      
            var selectedNode = myDiagram.selection.first();
            // ---- more code here
      
           switch (val) {
           case "detail": commandDetail(selectedNode);break;
           case "disconnect": commandDisconnect(selectedNode);break;
           case "remove": commandRemove(selectedNode);break;
           }
      
        }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-28
        • 2016-10-04
        • 2016-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多