我想根据全局 Javascript 变量更改图形的样式。例如,假设我的边得到了name和price属性,我想根据全局label_type变量使边的标签不同:
let lable_type = 'I_want_name_labels'
switch(lable_type) {
case 'I_want_name_labels':
cy.style().selector('edge').style({'label': 'data(name)'});
break;
case 'I_want_price_labels':
cy.style().selector('edge').style({'label': 'data(price)'});
break;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码根本没有做任何事情(没有显示标签),我真的不明白为什么。我的边缘具有以下结构:
{
"data": {
"id": "node_node2",
"source": "node1",
"target": "node2",
"directed": true,
"name": "Baltazar",
"price": 1095.73
}
}
Run Code Online (Sandbox Code Playgroud)
注意:我尝试使用cy.filter('edge').style({'label': 'data(name)'}),但data似乎无法通过这种方式访问,我收到了以下警告:
The style property `label: data(name)` is invalid
Run Code Online (Sandbox Code Playgroud)
那么,如何使用 cytoscape.js 获得条件样式?我在这里错过了什么?