我需要以动态方式更改类别值。
代码:
diagram.startTransaction('changing state: ' + node.data.text);
model.setDataProperty(node.data, 'category', 'stateInitial');
diagram.commitTransaction('changing state: ' + node.data.text);
节点模板:
$(go.Shape, 'RoundedRectangle',
{ stroke: null , strokeWidth: 0 },
new go.Binding("fill", "category", function(category){
if( category == 'stateInitial'){
return '#99AE3B';
}
else if(category == 'stateFinal'){
return '#E53935';
}
return '#6699CC';
})
), . . .
这个工作正常,节点会改变它的颜色。
但是,这样做之后:
diagram.undoManager.undo();
节点切换到模型中的上一个类别(这没关系)但我没有看到颜色变回原来的颜色。 只有diagram.rebuildParts()方法有效,但我无法使用它。
有什么想法吗?
答案 0 :(得分:0)
类别(模板)很特别。在更改节点类别时,请尝试使用Model.setCategoryForNodeData。
如果您不更改节点模板,请选择与“类别”不同的数据属性名称,因为它在GoJS模型中具有其他含义。