Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MxGraph中节点、边和画布的自定义(不同)右键单击菜单_Javascript_Angular_Mxgraph - Fatal编程技术网

Javascript MxGraph中节点、边和画布的自定义(不同)右键单击菜单

Javascript MxGraph中节点、边和画布的自定义(不同)右键单击菜单,javascript,angular,mxgraph,Javascript,Angular,Mxgraph,我需要在右键单击上下文菜单中提供不同的操作/选项,具体取决于用户是单击节点还是边缘,还是单击空白画布区域 我一直在研究drawio/jgraph源代码,特别是menus.js文件,以了解右键单击菜单是如何特定于上下文的。与顶点和边相比,draw.io应用在画布上似乎有不同的右键单击菜单。但是,我还没有遇到对单击的对象进行区分的代码 在此方面的任何帮助或指导都将不胜感激。您应该扩展graph.popupMenuHandler.factoryMethod功能,让我给您一个代码示例 让图形成为您的图形

我需要在右键单击上下文菜单中提供不同的操作/选项,具体取决于用户是单击节点还是边缘,还是单击空白画布区域

我一直在研究drawio/jgraph源代码,特别是menus.js文件,以了解右键单击菜单是如何特定于上下文的。与顶点和边相比,draw.io应用在画布上似乎有不同的右键单击菜单。但是,我还没有遇到对单击的对象进行区分的代码


在此方面的任何帮助或指导都将不胜感激。

您应该扩展
graph.popupMenuHandler.factoryMethod
功能,让我给您一个代码示例

图形
成为您的图形对象

graph.popupMenuHandler.factoryMethod = function(menu, cell, evt)
{
  if(cell.edge){
      menu.addItem('First edge option', null, function()
      { 
        alert('This is the first option of edge ');
      })
      menu.addItem('Second edge option', null, function()
      {
        alert('This is the second option of edge ');
      })
  }
  if(cell.vertex){
      menu.addItem('First vertex option', null, function()
      {
        alert('This is the first option of vertex ');
      })
      menu.addItem('Second vertex option', null, function()
      {
        alert('This is the second option of vertex ');
      })
  }
}

希望这有帮助:)

感谢您的快速回复-这比drawio中的代码更简单!为了处理非顶点和边的情况,我不得不添加一些右括号和一个if,但效果很好。关于如何设置菜单背景色等,有什么建议吗?你到底想做什么?你可以编辑
src/js/util/mxPopupMenu.js
addItem
函数来设置你自己的风格,如果你有更多问题,请发布一个新问题:)由于应用程序的其余部分是在Angular8+Bootstrap4中构建的,与其他下拉菜单相比,mxGraph中的上下文菜单看起来有些不合适。所以我想知道我如何能在造型上带来一些平等。不用担心,如果需要的话,我会做更多的挖掘并发布一个新问题:)。谢谢!