我正在使用GoJS制作图表。 我的图表配置(来自官方文档的示例): 我以以下方式创建节点: 现在,我需要以编程方式更改特定节点的填充颜色。 我正在尝试以下代码: 但是之后,我的图表不会显示。 并且控制台中没有错误。 我应该为节点设置新形状吗? 或者我该怎么做 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
这是我正在使用的节点模板:
$(go.Node, "Auto",
{
deletable: false,
selectionAdorned: false
},
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
$(go.Shape, "Terminator",
{
fill: "#f8da07", strokeWidth: 2, minSize: new go.Size(90, 40), portId: "", cursor: "pointer", stroke: '#000000', fromLinkable: true,
toLinkable: false, fromLinkableSelfNode: false, toLinkableSelfNode: false, fromLinkableDuplicates: false, toLinkableDuplicates: false, fromMaxLinks: 1
},
new go.Binding("figure"),
new go.Binding("fill", "color"),
new go.Binding("fill", "isSelected", function(sel) {
return sel ? "#e1e1e1" : [selfColor];
}).ofObject()),
{
click: (e, obj) => {
clickNode(e, obj);
}
},
$(go.TextBlock,
{
stroke: "#000000", margin: 4, editable: false, font: "bold 12pt sans-serif", isMultiline: true
},
new go.Binding("text").makeTwoWay())
);
您可以看到节点的默认颜色是#f8da07,但它实际上是由节点自身颜色属性用“new go.Binding("fill", "color")" 行写入的。
事实上,我无法知道哪个是当前选择的节点的颜色代码。
当我 select 时,我希望能够将节点的颜色更改为“#e1e1e1”,但我也希望它在没有时更改回旧颜色 - (不是“#f8da07”)。
有没有合适的方法来做到这一点?
任何帮助将不胜感激! 谢谢
$(go.Shape,
{ fill: "#f8da07" }, // default color
new go.Binding("fill", "color"),
new go.Binding("fill", "isSelected", function(sel, shape) {
return sel ? "#e1e1e1" : shape.part.data.color || "#f8da07";
}).ofObject()),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.