我的目标是获得元素的样式。
实际上,我的真正目标是从CytoscapeJS中读出图表,然后将其反馈到Cytoscape中。要做到这一点,我需要能够得到元素样式。
当我尝试获取每个元素的元素样式时,它会返回所有可能的样式:
例如:
const selectedNodeInMaster = cy.getElementById(getSelectedNodeId)
const nhood = selectedNodeInMaster.closedNeighborhood();
const foo = nhood.map((el) => {
const foo = {data: el.data(), id: el.id(), style: el.style(), classes: el.classes()}
console.log(foo)
return foo
})下面是上面代码的结果:

但是,如果我这样做:
cy.json({flatEles: true})然后我可以在这个位置看到我需要的样式数据:
_private.elements[0]._private.style如下所示:

发布于 2021-08-12 15:47:24
我认为cytoscape做得很好,因为如果你叫我节点样式,例如,如果你只设置了z索引,因为那个节点也有一种颜色,一种边框颜色,...即使它们是默认值。因此,如果您向我询问样式,我将返回该节点上的所有属性。
现在我们来解决您的问题,原因很明显,您不能在_private参数中使用值。
您需要样式对象属性的一个子集,而且您还知道这些属性是什么,因为您在cytoscape中插入数据之前设置了样式数据。然后,您可以将所有样式属性名称存储在一个数组中,然后告诉cytoscape只从节点返回该属性。
可以通过两种方式获取属性值:
node.style(propertyName)const styleObj = node.style(); and then styleObj[propertyName];我希望我已经理解了这个问题,也很好地理解了它。
https://stackoverflow.com/questions/68689035
复制相似问题