2016-08-22 187 views
0

我使用cytoscape-cxtmenu.js在節點上提供命令,但並非所有節點都支持所有命令。 如何只顯示節點支持的命令?Cytoscape.js:根據節點隱藏cxtmenu條目?

var defaults = { 
    selector: 'node', 
    commands: [ 
     // everyone has a name 
     {content: 'tell name', 
     select: function(node) {console.log(node.data().name);}}, 
     // not everyone has a spouse 
     {content: 'tell spouse', 
     select: function(node) {console.log(node.data().spouse);}}, 
]}; 

var cxtmenuApi = cy.cxtmenu(defaults); 

回答

1

使用多個上下文菜單,每個菜單都有不同的選擇器。

var cxtmenuApi1 = cy.cxtmenu({ selector: 'node[foo="bar"]' /* ... */ }); 

var cxtmenuApi2 = cy.cxtmenu({ selector: 'node[foo="baz"]' /* ... */ }); 

每個菜單都有其自己的命令集,所以你可以使用相同的命令,但有些命令禁用(disabled: true)於1,但在2啓用等

或者,你可以指定只有適用於每組節點的命令 - 但是隨後命令的相對位置可能因節點而異。