2016-08-22 21 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で有効、など

、ノードの各セットに適用されるコマンドだけですが、コマンドの相対位置はノードごとに異なる場合があります。

関連する問題