隐藏所有连接的边时隐藏节点

时间:2019-06-26 08:31:20

标签: cytoscape.js

我正在尝试使用cytoscape js绘制带有节点和边缘的图形。

边缘信息(会有很多边缘和节点):

边缘{  编号:ab  资料来源:  目标:b  attr1:5  attr2:3, }

节点信息:

节点{   编号:a }

节点:{   编号:b }

我需要根据attr1和attr2的范围隐藏边缘和节点。例如,用(attr1> 5)和(attr2> 7)隐藏边缘。

此外,当连接到该节点的所有边缘都被隐藏时,我需要隐藏该节点。

我试图根据edge属性设置可见性 http://js.cytoscape.org/#style/visibility

我的节点只有id属性,我只能隐藏满足选择条件的边,但是当连接的边被隐藏时,我不能隐藏节点。<​​/ p>

{
        selector: 'edge',
        style: {
          'width': 3,

          display: function(ele) {

            if (ele.data('attr1') >= coeValue && ele.data('attr2') >= pValue){

              return 'element';
            } else {

              return 'none';
            }
          },

        },

      },

{
        selector: 'node',
        style: {
          shape: this.state.nodeShape,
          'background-color': function(ele) {
            if (ele.data('foldChange') > 25) {
              return "red";
            } else {
              return "green";
            }
          },
          label: 'data(id)',
          width: function(ele) {
            return ele.data('foldChange');
          },
          height: function(ele) {
            return ele.data('foldChange');
          },
          opacity: function(ele) {
            TODO:
                 if all connected edge hidden:
                    return 0;
                 else
                    return 1
          },
        }

      },

当所有连接的边都隐藏时,如何隐藏节点?请在代码的TODO部分给出一些提示

0 个答案:

没有答案